【问题标题】:Specific Field Wont Display In Mongo DB Aggregation Pipeline特定字段不会显示在 Mongodb 聚合管道中
【发布时间】:2021-06-02 00:14:19
【问题描述】:

我有一个书评集合,我试图在其中找到创建了多个评论的用户(比如说 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}

【问题讨论】:

    标签: mongodb


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-06
      • 2021-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多