mongodb - Mongo DB聚合管道中不会显示特定字段
问题描述
我有一个书评集合,我试图在其中找到创建了多个评论的用户(比如说 5 个),我还想返回评论的数量、他们的唯一 ID 和他们的名字。
到目前为止,我已经设法通过聚合找到了一种方法,但是对于我的生活,我似乎无法返回 name 字段,我认为一个简单的 $project 就可以了,但我只能看到 ID 和 Number有人做出的评论,我缺少什么来解决这个问题?
当前代码:
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}}},
])
推荐阅读
- python-3.x - 在 django 中,我创建了一个登录和注册页面,我在其中输入了一些数据并提交,但它显示页面未找到错误代码如下
- elasticsearch - 用于 es 7.9.1 的 seunjeon elasticsearch 插件
- html - html 超链接 - 添加自动中断
- magento2 - Magento 2关键CSS文件位置
- java - Java 2D - JLabel 仅在 JList 内部分绘制
- powershell - Powershell Select-Object:在计算属性中执行本机命令
- flutter - Flutter:CocoaPods 找不到 pod“FBSDKCoreKit”的兼容版本
- squarespace - 用户向谷歌地图提交数据
- matrix - 以二维矩阵为输入计算 LSTM 中的权重维度
- r - 使用 names.arg (R) 时使轴标签斜体