2017-02-20 11 views
0

Ich bin ein Neuling zu mongodb. Ich schreibe eine Abfrage, um Dokumente zwischen zwei Daten mit der Zeit zu holen. Wenn der Datumsbereich in die letzten Tage fällt, geben Sie die Ergebnisse korrekt ein (like 2017-01-01T00:00:00.000Z to 2017-02-01T23:59:59.999Z). Wenn der Datumsbereich in den heutigen Tag fällt, gibt es falsche Datensätze (like 2017-02-20T00:00:00.000Z to 2017-02-20T16:59:59.999Z). Im Folgenden wird die AbfrageMongodb Datum mit der Zeit funktioniert nicht richtig

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

es zählt als gibt. Jetzt für heute:

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

es mir als zählen gibt. Wenn ich einen neuen Datensatz nach dieser (2017-02-20T16:59:59.999Z) Zeit hinzufüge, dann die gleiche Abfrage, die mich als zählen. Auch habe ich versucht mit $and Operator aber das gleiche Ergebnis.

Bitte helfen Sie mir aus.

Vielen Dank im Voraus.

+0

Können Sie das neu hinzugefügte Dokument anzeigen? – notionquest

+0

Dies ist '2017-02-20T16: 59: 59.999Z' heute in UTC-Zeit. Ich denke, Sie werden zwischen Ortszeit und UTC-Zeit durcheinander gebracht. In welcher Zeitzone bist du? – Veeram

Antwort

1

versuchen Sie unter dem Code.

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

Vielen Dank Sandeep .. – anil

Verwandte Themen