我在 mongoDB 中使用聚合方法进行分组,但是当我使用 $group
它返回我用来分组的唯一字段。我试过 $project
但它也不起作用。我还尝试了 $first
它有效,但结果数据现在采用不同的格式。
我需要的响应格式如下:
{
"_id" : ObjectId("5b814b2852d47e00514d6a09"),
"tags" : [],
"name" : "name here",
"rating" : "123456789"
}
在我的 query.response 中添加 \(group 后,_id 的值会发生变化。 (并且 \)group 只使用 _id,如果我尝试任何其他关键字,它会引发累加器错误。请也解释一下。)
{
"_id" :"name here" //the value of _id changed to the name field which i used in $group condition
}
我必须删除名称字段中的重复项,而不更改任何结构和字段。我也将nodeJS与猫鼬一起使用,所以请提供适用于它的解决方案。
原文由 Anukool 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用以下聚合查询。
$$ROOT
保留每个名称的整个文档,后跟$replaceRoot
将文档提升到顶部。