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

2023-12-30

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

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

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

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

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


您需要使用点符号 http://docs.mongodb.org/manual/core/document/#dot-notation对于数组。

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

例如:

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

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

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

将更新第一个朋友的第二个电子邮件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 mongodb 更新父对象数组中包含的对象的属性? 的相关文章

随机推荐