考虑一个包含带有日期和计数字段的文档的集合:
{ _id: ObjectId("..."), date: ISODate("..."), count: 3}
我想按周查询计数,所以我必须按截断到一周开始的日期对数据进行分组。但似乎没有办法用 mongodb 聚合框架来实现这一点。
我期待能够做这样的事情($dateOfWeek
是一个日期运算符,我想在一周的开始截断日期):
db.data.aggregate( [ {$project : { date: {$dateOfWeek: '$date'}, count:1},
{ $group: {_id:'$date', count: {$sum: '$count'}} ])
但是我没有找到合适的日期操作员来做这件事。
我知道我可以使用 mapreduce 来做到这一点,但是拥有一个日期运算符而不是编写 javascript 代码会更加优雅。