现在我有一个类似
的Mongoose查询Collection
.find( selector )
.sort( sortCriteria )
.select( selectCriteria )
.populate( populateCriteria1 )
.populate( populateCriteria2 )
.then( docs => ... )
.catch( errHandler )
所以我在查询中做了很多。
我的收藏中的每个文件都有一个日期。我希望按月和年分组返回的文档。所以它应该变成类似
的东西docs = [
{ _id: { year: 2017, month: 4 }, docs: [ ... ] },
{ _id: { year: 2017, month: 5 }, docs: [ ... ] },
{ _id: { year: 2017, month: 6 }, docs: [ ... ] }
]
我想这是一个简单的.aggregate()
,但我不知道应该在哪里添加它,因为我使用.find()
进行过滤,使用.sort()
进行排序,使用{{进行字段选择1}},并使用.select()
填充。
每个文档都有字段.populate()
,因此它可能类似于
date
答案 0 :(得分:0)
不需要' $ project',因为您还可以在$group
所以你会得到类似的东西:
$group:{
_id : { year: { $year: "$date" }, month: { $month: "$date" } },
docs: { $push: { field1: "$field1", field2: "$field1" } }
}}