我有以下收藏:
{
"_id" : ObjectId("5c3f744a0f05e90001e0085a"),
"date" : ISODate("2016-01-12T12:00:00.779Z"),
}
我需要通过周对文档进行分组,所以我想出了以下解决方案:
db.collection.aggregate([
{
$group : {
_id: { $year: { date: '$date' }, $week: { date: '$date' } },
date: { $first: '$date' }
}
},
{
$sort: { date: -1 }
}
]);
但是当我运行它时,出现此错误:
表示表达式的对象必须具有一个字段:{$ year:{date:“ $ date”},$ week:{date:“ $ date”}}
如何解决此问题或有更好的解决方案? 谢谢
答案 0 :(得分:1)
问题解决了命名表达式的问题:
db.collection.aggregate([
{
$group : {
_id: {
year: { $year: { date: '$date' } },
week: { $week: { date: '$date' } }
},
date: { $first: '$date' }
}
},
{
$sort: { date: -1 }
}
]);