我的MongoDB中有一个具有以下结构的集合:
{
"_id" : "17812",
"date" : ISODate("2014-03-26T18:48:20Z"),
"text" : "............."
}
我想使用pyMongo并在列表中返回从特定日期到现在每个月的文档数量。我现在这样做的方法是在没有过滤器的情况下检索所有文档,然后在Python中创建列表。我不确定,但你知道我是否只能用pymongo查询来做这个吗?
答案 0 :(得分:2)
因此,获取整月的计数,您可以使用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 }
}}
])
答案 1 :(得分:0)
看看MongoDB中的aggregation framework,它是这类任务的理想选择。它可以在pyMongo中使用,并在集合上使用aggregate方法。