{
"_id" : ObjectId("568b650543712795bf864a45"),
"companyId" : "55e2d7cfdc8f74d14f5c900f",
"timeStamp" : ISODate("2014-12-03T18:30:00.000Z")
},
{
"_id" : ObjectId("568b650543712795bf864a49"),
"companyId" : "55e2d7cfdc8f74d14f5c900f",
"timeStamp" : ISODate("2014-12-04T18:30:00.000Z")
}
Run Code Online (Sandbox Code Playgroud)
如何按周在mongodb分组文件.我需要按最近7周的时间分组文档,并且星期分组应基于文档中的"timeStamp"字段.
您可以使用聚合操作来实现此目的.mongodb中有$ 周聚合操作.
首先使用您使用的任何编程语言确定startDate.
在以下管道操作中,计算匹配一周的文档数.您可以在所需的任何字段/类型的聚合上执行此操作.
pipeline = [
{
$match: {
timeStamp: {$gt: ISODate(startDate)},
}
},
{
$group: {
_id: {$week: '$timeStamp'},
documentCount: {$sum: 1}
}
}
];
db.mycollection.aggregate(pipeline)
Run Code Online (Sandbox Code Playgroud)
对于您指定的上述两个文档,结果将是
{ "_id" : 48, "documentCount" : 2 }
Run Code Online (Sandbox Code Playgroud)
在_id上面说,第48周,有两个文件.
通过链接$ 周知道mongodb如何计算周数.