2016-09-30 14 views
0

Ich habe viele Daten in einem Mongodb mit Daten drin. In der Regel sind diese Daten zu jedem Zeitpunkt, aber zwischen 10:00 und 22:00 Uhr.MongoDB: Abfrage nach Zeit Teil von Datetime

Da ich einige seltsame Verhalten während Zeiten außerhalb des oben genannten Bereichs herausgefunden habe, möchte ich eine Abfrage, die jedes Dokument zurückgibt, die nicht zwischen 10:00:00 und 22:00:00 an einem beliebigen Datum ist. Gibt es eine Möglichkeit, dies in Mongodb zu tun?

z.B. Frage nach dem Zeitpunkt des Datums?

+0

Hinweis: '$ Projekt 'Ihr Dokument und die Zeit für jedes Dokument mit [Datum Operatoren] (https://docs.mongodb.com/v3.2/reference/operator/aggregation-date/) zurückgeben. Von dort aus können Sie Ihre Dokumente in einer "$ match" -Stufe filtern. – styvane

Antwort

1

Dokumente abfragen, die Zeit nach 12.29 Uhr haben, war meine Lösung:

(event_start ist isodatetime)

I) Projekt Stunde und Minute

{'$project': {'_id': 1, 
      'hour': {'$hour': '$event_start'}, 
      'minute': {'$minute': '$event_start'}}}, 

II) Spiel danach : `

{'$match': {'$or': [ 
        {'hour': {'$gt': 12}}, 
        {'$and': [{'hour': {'$eq': 12}}, 
           {'minute': {'$gte': 30}} 
           ]}]}} 

Quelle ->Link