2016-04-01 10 views
0

Belirli bir tarihte veri döndüren bir sorgu yazdım (bu durumda 3/14 deyin), ancak sonuç 3/29 değerine kadar bir şey döndürüyor (ve hiçbir şey yok)pymongo "match", doğru tarihi filtrelemiyor

) 3/14 yılında benim match sadece tarih içindeki verileri alır {'$lte': datetime.datetime(2016, 3, 14, 23, 59, 59, 999, tzinfo=tzutc()), '$gt': datetime.datetime(2016, 3, 14, 0, 0, tzinfo=tzutc())}, ve benim sorgu komutu

{'$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}} 
    }] 
) (biraz dağınık, üzgünüm

Bu sorgu bana bir şey yukarı döndürür nedense 3/29 için. Eşlememi doğru şekilde ayarlamam mıyım?

cevap

0

ben

( $match tarafından kullanılan biridir needed_field içinde başka bir zaman, orada) Farklı bir $ süresi alanını sorgulamak olduğunu kapatır