2016-04-01 5 views
0

Ich schrieb eine Abfrage, die Daten zurückgibt, die innerhalb eines bestimmten Datums (sagen wir 3/14 in diesem Fall), aber das Ergebnis gibt etwas bis zu 3/29 (und nichts in 3/14)Pymongo "Match" filtert nicht das richtige Datum

mein match ist {'$lte': datetime.datetime(2016, 3, 14, 23, 59, 59, 999, tzinfo=tzutc()), '$gt': datetime.datetime(2016, 3, 14, 0, 0, tzinfo=tzutc())} die nur Daten innerhalb des Datums ist Befehl

{'$match': match}, 
{'$unwind': '$'+needed_field}, 

{'$group': { 
    "_id":{ 
      "date":{ 
      "$concat": [ 
       {"$substr": [{"$year": "$time"}, 0, 4 ]}, 
           "-", 
           {"$substr": [{"$month": "$time"}, 0, 2 ]}, 
           "-", 
           {"$substr": [{"$dayOfMonth": "$time"}, 0, 2 ]}, 
          ] 
         }, 
         "state":"$needed_field.state" 
        }, 
       "count":{"$sum": 1}} 
    }] 

(ein wenig chaotisch, sorry) gibt mir

Diese Abfrage etwas, und meine Abfrage aufsteht aus irgendeinem Grund bis 3/29. Passe ich mein Match nicht korrekt an?

Antwort

0

Es stellte sich heraus, dass ich ein anderes $ Zeitfeld abfragt (es gibt ein anderes Mal innerhalb needed_field, das ist die von $match verwendet wird)