我是MongoDB的新手。我几乎阅读了所有相关帖子,但找不到适合自己案例的答案。假设你有文件:
{ "_id" : "5ad1..",
"linkedin" : { "linkedinId" : "NB..J", "username" : "dolguldur",
"followers":[{name:"John",email:"john@example.com},{name:"Elsa",email:"elsa@example.com}]
}
}
如果关注者更改了他的电子邮件,我该如何使用新邮件更新他的记录;
答案 0 :(得分:2)
使用$elemMatch
运算符选择所需的嵌套对象:
db.collection.update({
followers: {
$elemMatch: {
name: _follower_name,
email: _follower_email
}
}
}, {
"followers.$.email": new_mail
});
$
位置运算符将选择与$elemMatch
中的过滤器匹配的第一个嵌套对象并更新它。