我的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/

10-09 14:52