如何在mongodb按周分组文件

时间:2016-01-05 11:01:55

标签: mongodb

results = new RestRequest().JsonSerializer.Serialize(answer.Results)

如何按周在mongodb中按文档分组。我需要按最近7周的时间分组文档,并且星期分组应该基于" timeStamp"文档中的字段。

1 个答案:

答案 0 :(得分:8)

您可以使用聚合操作来实现此目的。 mongodb中有$ week聚合操作。

首先使用您使用的任何编程语言确定startDate。

在以下管道操作中,计算与一周匹配的文档数。您可以在所需的任何字段/类型的聚合上执行此操作。

pipeline = [
    {
        $match: {
            timeStamp: {$gt: ISODate(startDate)},
        }
    },
    {
        $group: {
            _id: {$week: '$timeStamp'},
            documentCount: {$sum: 1}
        }
    }
];
db.mycollection.aggregate(pipeline)

对于您指定的上述两个文件,结果将是

{ "_id" : 48, "documentCount" : 2 }

上面的_id说,第48周,有两份文件。

浏览链接$ week,了解mongodb如何计算周数。