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

时间:2021-03-03 11:53:09

标签: mongodb

我有一个书评集合,我试图在其中找到创建多条评论的用户(比如 5 个),我还想返回评论数量、他们的唯一 ID 和他们的姓名。

到目前为止,我已经设法通过聚合找到了一种方法,但是在我的一生中,我似乎无法返回 name 字段,我认为一个简单的 $project 就可以了,但我只能看到 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}

1 个答案:

答案 0 :(得分:0)

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

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