gpt4 book ai didi

mongodb - 我如何 $unwind 一个数组并就地更新它

转载 作者:行者123 更新时间:2023-12-05 04:15:57 24 4
gpt4 key购买 nike

我的文档有一个字段symptoms,它是一个数组的数组。

我想$unwind它并应用$addToSet删除重复项,

然后只需更新文档即可。怎么做 ?

文档

  "symptoms": [
[
"A481 ",
"A48 ",
" "
],
[
"A48177 ",
"A48 ",
" "
]
]

预期输出

  "symptoms": 
[
"A481 ",
"A48 ",
"A48177 ",
" "
]

更新

其实我的文档有上百个字段,如何在不影响其他字段值的情况下就地更新symptoms,谢谢

最佳答案

您需要$unwind symptoms 数组的两倍并使用 $project排除 _id 字段。您可以使用 $out将结果写入新集合或替换现有集合。

db.collection.aggregate(
[
{ "$unwind": "$symptoms" },
{ "$unwind": "$symptoms" },
{ "$group": {
"_id": "$_id",
"symptoms": { "$addToSet": "$symptoms" }
}
},
{ "$project": { "_id": 0, "symptoms": 1 }},
{ "$out": "collection" }
]
)

现在

db.collection.find()

给你:

{ "_id" : ObjectId("553a244bea67317760a44347"), "symptoms" : [ "A48177 ", "     ", "A48  ", "A481 " ] }

关于mongodb - 我如何 $unwind 一个数组并就地更新它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29845216/

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