我使用 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 的第二封电子邮件。
https://stackoverflow.com/questions/19603542/
相关文章:
node.js - Redis 缓存和 Mongo 的持久性架构
mongodb - 选择 MongoDb/CouchDb/RavenDb - 性能和可扩展性建议
mongodb - 在 MongoDB 中存储 null 与根本不存储 key
java - 为什么 Casbah/Java MongoDB 驱动程序会出现 java.lang.I
mongodb - 在 MongoDb 中按 15 分钟的时间间隔对结果进行分组
javascript - Meteor 文档中的消息计数示例如何工作?
mongodb - 如何对 MongoDB 集合中所有文档的键值求和