返回MongoDB中每月的文档数量

时间:2014-03-28 10:29:29

标签: python mongodb aggregation-framework pymongo

我的MongoDB中有一个具有以下结构的集合:

{
        "_id" : "17812",
        "date" : ISODate("2014-03-26T18:48:20Z"),
        "text" : "............."
}

我想使用pyMongo并在列表中返回从特定日期到现在每个月的文档数量。我现在这样做的方法是在没有过滤器的情况下检索所有文档,然后在Python中创建列表。我不确定,但你知道我是否只能用pymongo查询来做这个吗?

2 个答案:

答案 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方法。