Ich habe einen MongoDB-Datenspeicher eingerichtet, dessen Standortdaten wie folgt gespeichert sind:
%Vor%Ich möchte eine ähnliche Abfrage durchführen können wie im Beispiel Zeitraum , aber stattdessen auf < em> Zeitbereich . h. Abrufen aller zwischen 12 Uhr und 4 Uhr aufgezeichneten Punkte (kann auch mit 1200 und 1600 24 Stunden Zeit durchgeführt werden).
z.B.
Mit Punkten:
"datetime_recorded" : ISODate("2013-05-01T12:35:13Z"),
"datetime_recorded" : ISODate("2013-06-20T05:35:13Z"),
"datetime_recorded" : ISODate("2013-01-17T07:35:13Z"),
"datetime_recorded" : ISODate("2013-04-03T15:35:13Z"),
eine Abfrage
%Vor%würde nur den ersten und letzten Punkt ergeben.
Ist das möglich? Oder müsste ich es für jeden Tag tun?
Nun, der beste Weg, dies zu lösen, besteht darin, die Protokolle separat zu speichern. Aber Sie können das mit dem Aggregations-Framework umgehen, obwohl das nicht sehr schnell wird:
%Vor% Im ersten Schritt $project
berechnen wir die Minuten von hour * 60 + min
, mit denen wir dann im zweiten Schritt übereinstimmen: $match
.