更新MongoDB中的嵌套对象

时间:2018-04-16 08:33:24

标签: mongodb

我是MongoDB的新手。我几乎阅读了所有相关帖子,但找不到适合自己案例的答案。假设你有文件:

{ "_id" : "5ad1..", 
"linkedin" : { "linkedinId" : "NB..J", "username" : "dolguldur",  
"followers":[{name:"John",email:"john@example.com},{name:"Elsa",email:"elsa@example.com}] 
} 
}

如果关注者更改了他的电子邮件,我该如何使用新邮件更新他的记录;

1 个答案:

答案 0 :(得分:2)

使用$elemMatch运算符选择所需的嵌套对象:

db.collection.update({
    followers: {
        $elemMatch: {
            name: _follower_name,
            email: _follower_email
        }
    }
}, {
    "followers.$.email": new_mail
});

$位置运算符将选择与$elemMatch中的过滤器匹配的第一个嵌套对象并更新它。

相关问题