MongoDB - Abfrage zwischen einem Zeitbereich von Stunden

8

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?

    
Ewan 24.07.2013, 12:52
quelle

1 Antwort

7

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 .

    
Derick 24.07.2013, 13:04
quelle

Tags und Links