我的MongoDB中有一个具有以下结构的集合:
{
"_id" : "17812",
"date" : ISODate("2014-03-26T18:48:20Z"),
"text" : "............."
}
我想使用pyMongo并从列表中返回从某个日期到现在每月每个月的文档数。我现在这样做的方法是检索所有不带过滤器的文档,然后在Python中创建列表。我不确定,但是您知道我是否只能使用pymongo查询来做到这一点吗?
最佳答案
因此,获得整个月的计数可以在date operators中使用aggregation pipeline。您还可以与$match
结合使用以获得所需的日期范围。
var start = new Date("2013-06-01");
var today = new Date();
db.collection.aggregate([
{ "$match": {
"date": { "$gte": start, "$lt": today }
}},
{ "$group": {
"_id": {
"year": { "$year": "$date" },
"month": { "$month": "$date" },
},
"count": { "$sum": 1 }
}}
])
关于python - 返回每月在MongoDB中的文档数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22710222/