特定字段不会在mongodb聚合管道中显示



我有一个图书评论的集合,我试图找到创建了多个评论的用户(假设是5个),我还想返回评论的数量,他们的唯一ID和他们的名字。

到目前为止,我已经设法找到了一种通过聚合做到这一点的方法,但是对于我的生活,我似乎不能返回名称字段,我认为一个简单的$项目会很好,但相反,我只能看到ID和评论的数量有人做了,我错过了什么来修复这个?

当前代码:

db.bookreviews.aggregate([   
{"$group": {"_id": "$reviewerID","NumberOfReviews": { "$sum": 1 }}}, 
{"$match": {NumberOfReviews: {"$gte": 5}}},
{"$project":{_id:1,NumberOfReviews:1, reviewerName:1}},
])

返回值:

{IDXYZ, NumberofReviews 5},                 
{IDABC, NumberofReviews 5},                 
{ID123, NumberofReviews 5}

您可以使用$first来保留该组的第一个文档,并将reviewerName的值保留在您的$group阶段,您可以删除$project

db.bookreviews.aggregate([   
{"$group": {"_id": "$reviewerID","NumberOfReviews": { "$sum": 1 }, "reviewerName": { "$first": "$reviewerName" } } }, 
{"$match": {"NumberOfReviews": {"$gte": 5}}},
])

最新更新