gpt4 book ai didi

node.js - 如何在mongoDB中分组并返回结果中的所有字段

转载 作者:可可西里 更新时间:2023-11-01 09:19:05 26 4
gpt4 key购买 nike

我在 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 与 Mongoose 一起使用,所以请提供适用于它的解决方案。

最佳答案

您可以使用以下聚合查询。

$$ROOT 保留每个名称的整个文档,后跟 $replaceRoot 以将文档提升到顶部。

db.col.aggregate([
{"$group":{"_id":"$name","doc":{"$first":"$$ROOT"}}},
{"$replaceRoot":{"newRoot":"$doc"}}
])

关于node.js - 如何在mongoDB中分组并返回结果中的所有字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52566913/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com