gpt4 book ai didi

mongodb - 如何使用 mongodb 更新包含在父对象数组中的对象的属性?

转载 作者:IT老高 更新时间:2023-10-28 11:02:31 26 4
gpt4 key购买 nike

我使用 MongoDB 作为我的数据库。我有一个数据:

 {
_id : '123'
friends: [
{name: 'allen', emails: [{email: '11111', using: 'true'}]}
]
}

现在,我想修改用户的 friend 的电子邮件'电子邮件,其_id是'123'我是这样写的:

db.users.update ({_id: '123'}, {$set: {"friends.0.emails.$.email" : '2222'} })

这很简单,但是,当 emails 数组有两个或更多数据时,这是错误的。所以,我的问题是:如何修改嵌套字段中的数据——只有两个或更多嵌套数组?谢谢。

最佳答案

您需要使用 Dot Notation对于数组。

也就是说,您应该将 $ 替换为您尝试更新的元素的从零开始的索引。

例如:

db.users.update ({_id: '123'}, { '$set': {"friends.0.emails.0.email" : '2222'} });

将更新第一个 friend 的第一封电子邮件,并且

db.users.update ({_id: '123'}, { '$set': {"friends.0.emails.1.email" : '2222'} })

将更新第一个 friend 的第二封电子邮件。

关于mongodb - 如何使用 mongodb 更新包含在父对象数组中的对象的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19603542/

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