2017-02-20 16 views
0

私はmongodbの初心者です。私は時間とともに2つの日付の間にドキュメントをフェッチするためのクエリを書いています。日付範囲が過去の日数である場合、結果は正しく(like 2017-01-01T00:00:00.000Z to 2017-02-01T23:59:59.999Z)になります。日付範囲が今日の範囲内にある場合、レコードは誤って(like 2017-02-20T00:00:00.000Z to 2017-02-20T16:59:59.999Z)となります。以下は、それがとしてカウントできますクエリMongodbの日付が正しく機能していない

db.collection.count({"date1":{$gte:ISODate("2017-01-01T00:00:00.000Z")},"date1":{$lte:ISODate("2017-02-01T23:59:59.999Z")}});

です。さて、今日のために:

db.collection.count({"date1":{$gte:ISODate("2017-02-20T00:00:00.000Z")},"date1":{$lte:ISODate("2017-02-20T16:59:59.999Z")}});

それは私がとしてカウントできます。この後に新しいレコードを追加した場合、(2017-02-20T16:59:59.999Z)と同じクエリは、とカウントします。また、私は$and演算子で試しましたが、同じ結果になりました。

親切にお手伝いします。

ありがとうございます。

+0

新しく追加されたドキュメントを表示できますか? – notionquest

+0

今日はUTC時間で '2017-02-20T16:59:59.999Z'です。あなたは現地時間とUTC時間の間に混乱していると思います。あなたは何タイムゾーンですか? – Veeram

答えて

1

下記のコードを試してください。

db.collection.count({"date1":{$gte:ISODate("2017-02-20T00:00:00.000Z") ,$lte:ISODate("2017-02-20T16:59:59.999Z")}}); 
+0

ありがとうございました.. – anil