2016-12-12 11 views
1

特定のコレクションで新しいDate()およびDate属性を使用して選択するときに問題があります。日付の範囲に経過したミリ秒数を計算する方法

{_id: ObjectId(12345), 'last_execution': ISODate("2016-12-12T11:35:44.832Z")}

私はlast_execution以来、今15分を経過しているために文書を取得したい:

は例えば、これは、文書のコレクションです。

は、私は次のように$場所と機能を使用してこれを行うことができます。

db.collection.find({ $where: function() { return ((new Date().getTime() - this.last_execution.getTime()) >= (15 * 60 * 1000)) } }) 

しかし、MongoDBののドキュメントにインデックスが使用されることはありませんこの方法に従って。

アイデア?

ありがとうございました!

答えて

2

時間を15分前に計算し、その時間より古いドキュメントをクエリします。

var cutoff = new Date(); 
cutoff.setMinutes(cutoff.getMinutes() - 15); 
db.collection.find({last_execution: {$lte: cutoff}}) 
+0

まあ、解決策になる可能性があります。ありがとうございました! – Ele

関連する問題