26732


monacaを使用して、以下のような方法でNifty mBaaSの  
データストアに保存されているデータを取得しています。

[code]

    var Score = self.ncmb.DataStore(クラス名);
    Score.order("score", true)
    .include("name")
    .limit(10)
    .fetchAll()
    .then(function(results){
    //取得データを画面に表示
    }
    
[/code]

今度、データストアのクラスに持っている"createdate"を条件として絞り込みを行いたいのですが、  
どのように記述すれば宜しいでしょうか？

取得にしたいのは、以下の2パターンです。  
① "createdate"が本日中のデータ  
② "createdate"が今月中のデータ

<http://mb.cloud.nifty.com/doc/current/datastore/basic_usage_monaca.html#/Monaca/>  
リンクにある『基本的なクエリのオペランド』の欄を調べたんですが  
"createdate"の日付の形式が『yyyy-mm-ddT00:00:00.000+09:00』な事もあり、  
具体的な方法が分からず質問させていただきました。

よろしくお願いします。


CC BY-SA 3.0
2016-06-14T01:34:49.627
26725
2016-06-14T10:33:35.583
16839
question
javascript monaca baas
monacaから条件を指定してmBaaSの値を取得する方法


`greaterThanOrEqualTo()` `>=` と `lessThanOrEqualTo()` `<=`
で開始日時と終了日時を指定すれば抽出できます。  
日時は「[REST API リファレンス 5.1
日付](http://mb.cloud.nifty.com/doc/current/rest/common/format.html#%E6%97%A5%E4%BB%98)」に記載されているとおりに設定します。

日時は[moment.js](http://momentjs.com/)を使用しています。  
①本日中のデータの場合、`startOf()` `endOf()`で`"day"`を指定します。  
②今月中のデータの場合、`"month"`を指定します。

[code]

    var Score = self.ncmb.DataStore(クラス名);
    var startDate = moment().startOf("day");    // 開始日時
    var endDate = moment().endOf("day");        // 終了日時
    Score.greaterThanOrEqualTo("createDate", { "__type": "Date", "iso": startDate.toISOString() })
        .lessThanOrEqualTo("createDate", { "__type": "Date", "iso": endDate.toISOString() })
        .order("score", true)
        .include("name")
        .limit(10)
        .fetchAll()
        .then(function(results) {
            //取得データを画面に表示
        });
    
[/code]


CC BY-SA 3.0
2016-06-14T05:01:42.777
26732
2016-06-14T10:33:35.583
2016-06-14T10:33:35.583
9566
9566
26725
answer