Mongodb: Abfrage basierend auf der Zeit im ISODate-Format

Angenommen, die Beispieldokumente in der Mongodb-Datenbank lauten wie folgt:

 { "date" : ISODate("2015-11-09T05:58:19.474Z") }
 { "date" : ISODate("2014-10-25T07:30:00.241Z") }
 { "date" : ISODate("2015-11-30T15:24:00.251Z") }
 { "date" : ISODate("2012-01-10T18:36:00.101Z") }

Erwartet

 { "date" : ISODate("2015-11-09T05:58:19.474Z") }
 { "date" : ISODate("2014-10-25T07:30:00.241Z") }

Ich bin daran interessiert, Dokumente zu finden, deren Uhrzeit im Feld "Datum" zwischen 04:00 und 08:00 liegt, unabhängig von Tag, Monat und Jahr. Die indirekte Abfrage muss mit einem "JJJJ-MM-TTT" im Datumsfeld übereinstimmen.

Mein Ansatz wäre, alle Dokumente innerhalb der voraussichtlichen Dauer der Daten vom Knoten abzufragen und dann für jedes Dokument, das mit der Abfrage übereinstimmt, das Feld "Datum" des Dokuments mit "JJJJ-MM-TTT" + "Erforderliche_Zeit" ("JJJJ -MM-DD wird aus dem "Datumsfeld" jedes Dokuments kopiert, um es zu vergleichen, indem es mit dem Modul moment.js in moment () konvertiert und Monat, Datum und Jahr abruft.

Gibt es eine Möglichkeit, die gleichen Ergebnisse direkt abzufragen?

Hinweis: Ich verwende nodejs, um eine Verbindung zu mongodb @ herzustelle

Antworten auf die Frage(2)

Ihre Antwort auf die Frage