我有一个集合comments
。每条评论都有authorId
。
我希望comments
将authorId
集合分组为'主题',并附上5条最新评论。
到目前为止,我已经尝试过这个:
db.comments.aggregate([{$group: { _id: "$authorId", recentComments: { $push: "$$ROOT"} }}])
但这附上了所有评论。然后我尝试添加这样的限制:
db.comments.aggregate([{$group: { _id: "$authorId", recentComments: { $push: "$$ROOT"} }}, {$limit: 5}])
但这并不限制文件数量,而是限制分组文件的数量。
有什么想法吗?
答案 0 :(得分:1)
添加项目对我有用......
db.comments.aggregate([
{$group: { _id: "$authorId", recentComments: { $push: "$$ROOT"} }},
{$project: {_id: 1, title: 1, recentComments: {$slice: ['$recentComments', 0, 5]}}}])