我有一个看起来像这样的文件
{
"2014" : {
"11" : {
"20" : {
"Counts" : {
"c" : 2
}
},
"21" : {
"Counts" : {
"c" : 20
}
},
"22" : {
"Counts" : {
"c" : 27
}
}
}
},
"_id" : "53d6883a2dc307560d000004",
"createdate" : ISODate("2014-11-21T07:15:26.109Z")
}
基本上是对{year {day {count {c = countval}}}年结构进行计数,如何查找日期范围内的数据,例如11月21日至22日之间的返回计数
我试过这样的事情
db.installObjs.find({"2014.11.20.Counts.c":{$ne:null}},{"2014.11.20.Counts.c":1})
但是你可以看到它仅适用于特定日期
答案 0 :(得分:2)
您可以使用以下模式构建查询。它是一个原生的mongo驱动程序javascript代码,但转换为python应该可以正常工作。
var month = 11;
var range = [20,21,22];
var year = 2014;
var project = {};
var find = {};
range.forEach(function(i){
var str = year+"."+month+"."+i+"."+"Counts"+"."+"c";
find[str] ={"$exists":true};
project[str] = 1;
})
db.collection.find(find,project);