Pymongo'yu birden çok alanla birleştirmeye çalışıyorum, ancak doğru değeri elde etmenin bir yolunu bulamadım.Pymongo Çok alanları olan birleştirme
Ben 2 alanlara göre toplam dosyaların sayısı almak gerekiyor: time
ve
time
state
pymongo üzerinden bir datetime nesnedir ve sadece yy/mm elde edebildi/
'$group': { "_id":{
"date":{"$concat": [
{"$substr": [{"$year": "$date"}, 0, 4 ]},
"-",
{"$substr": [{"$month": "$date"}, 0, 2 ]},
"-",
{"$substr": [{"$dayOfMonth": "$date"}, 0, 2 ]},
]}},
"count":{"$sum": 1}}
kullanılarak dd
Bu benim için doğru tarih ayıklamak almak ve günlükleri sayısını saymak, ama şimdi de state
grup yüzden
ben eklemeden denedim mysql
yılındaGROUP BY date, state
olur gerekiyor olabilir
_id
'$group': { "_id":{
"date":{"$concat": [
{"$substr": [{"$year": "$date"}, 0, 4 ]},
"-",
{"$substr": [{"$month": "$date"}, 0, 2 ]},
"-",
{"$substr": [{"$dayOfMonth": "$date"}, 0, 2 ]},
]}},
"_id":{"state":"$timeline.state"},
"count":{"$sum": 1}}
iç ve {u'count': 4111, u'_id': {u'state': [0, 1]}}
gibi biçimde birden çok çıkış oluşturur 0 ve 1 farklı devletler için kodlardır. Tarih bulunacak bir yer değil.
Sonra
'$group': { "_id":{
"date":{"$concat": [
{"$substr": [{"$year": "$date"}, 0, 4 ]},
"-",
{"$substr": [{"$month": "$date"}, 0, 2 ]},
"-",
{"$substr": [{"$dayOfMonth": "$date"}, 0, 2 ]},
]}},
"state":"$timeline.state"},
"count":{"$sum": 1}}
çalıştı ve ben doğru yerde parantez elde etmediği Bu görünüyor, ama ne olursa olsun ben biçimi, aynı hata kalıntıları nasıl değiştiğini
failed: A pipeline stage specification object must contain exactly one field.
var . Şimdi merak ediyorum, bu gerçekten meselenin problemi mi? En önemlisi, bunu nasıl doğru yapabilirim?
görüyorum. Yani her şey '_id' braketi içinde olmalı. Sanırım şimdi işe koyuldum. Sadece bir "saymak" işe yaramazdı, değil mi? Bir şekilde "tarihi" olanı hesaba katmam gerekmiyor, daha sonra devleti başka bir zamana saymam gerekmiyor mu? – JChao