2016-09-12 4 views
0

MongoDBへの非常に簡単なクエリを実行して、現在の日付を超えるすべてのオブジェクトを探したいとします。私のクエリ:

このクエリをRobomongoで直接実行すると、現在の時間より長い持続時間を持つオブジェクトで期待される結果が得られます。また、$ gtタグなしでmongooseを使うと、私は抽出したいオブジェクトを取得します。上記のクエリは私に空の配列オブジェクトを与えます。

私のマングースバージョンは2.4.10です。モデルで

Durationオブジェクトは、次のようになります。

duration: { 
//How long should the campaign last 
type: Date, 
default: function(){return +new Date() + 7*24*60*60*1000;}, 
required: 'Please fill the duration of the Campaign. Default is 1 week.' 
}, 
+0

'Date.now()'メソッドは、ミリ秒数を返すようにあなたが何かを行うことができます1970年1月1日00:00:00 UTC以来経過した。一方、 'duration'フィールドは' Number'ではなく、 'Date'型であるため、クエリは失敗する。あなたが必要とするのは、 'Campaign.find({'duration':{$ gt:new Date()}}、コールバック)' – chridam

+0

としてクエリの現在の日付時刻を表すDateオブジェクトです。葉巻はありません。 'var dateNow = new Date(); Campaign.find({'duration':{'$ gt':dateNow}}、function(err、numAffected){' – Torby

+0

$ Gtタグを削除し、console.log()で目的のオブジェクトを削除するとデータは 'Mon Sep 19 2016 13:04:41 GMT + 0200(CEST)' – Torby

答えて

1

この

{ 

Campaign.find({ 'duration': { "$gt" : { "$date" : new Date()}}, function(err, numAffected){ 
    if(err){ 
    console.log(err); 
    }else{ 
    console.log(numAffected); 
    console.log(typeof numAffected); 
    } 
}); 

}

関連する問題