gpt4 book ai didi

mongodb - addToSet 用于数组中的数组

转载 作者:可可西里 更新时间:2023-11-01 10:42:23 24 4
gpt4 key购买 nike

鉴于此示例文档:

> db.sample.find().pretty()
{
"_id" : ObjectId("570f76ca4fe66c8ae29f13cd"),
"a" : [
{
"b" : [
1,
2,
3
]
},
{
"b" : [
1,
2,
3,
4
]
},
{
"b" : [
4
]
}
]
}

我正在尝试为 a 数组中的每个实例将数字 4 添加到 b 数组

我希望如此

db.sample.update({},{$addToSet:{"a.b":4}})

可以解决问题,但这会产生错误:

cannot use the part (a of a.b) to traverse the element ({a: [ { b: [ 1.0, 2.0, 3.0 ] }, { b: [ 1.0, 2.0, 3.0, 4.0 ] }, { b: [ 4.0 ] } ]})

这样的更新可能吗?显然我可以将每个文档拉到客户端更新和替换,但那真的只是最后的手段。

最佳答案

看起来直到SERVER-1243 Jira 已实现,您必须对数组中的每一项逐一执行,例如:

db.sample.update({},{$addToSet:{"a.0.b":4}})
db.sample.update({},{$addToSet:{"a.1.b":4}})

如果您只需要更新您可以使用的第一个元素:

db.sample.update({},{$addToSet:{"a.$.b":4}})

关于mongodb - addToSet 用于数组中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36621150/

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