Mongodb 基于“更新嵌套对象”;名称“;领域

Mongodb 基于“更新嵌套对象”;名称“;领域,mongodb,Mongodb,我是MongoDB的新手,请原谅我的无知。假设您有以下文档: { "_id" : ObjectId("..."), "google" : { "googleId" : ..., "username" : "Johnny", "followers" : [ { name:"niklas", email:"niklas@hotmail.com" } ] }, "__v" : 0 } 当管理员“Johny”获得一个新的追随者时,我可以使用 User.update(query,

我是MongoDB的新手,请原谅我的无知。假设您有以下文档:

{ "_id" : ObjectId("..."), 
"google" : { "googleId" : ..., "username" : "Johnny",  
"followers" : [ { name:"niklas", email:"niklas@hotmail.com" } ] }, 
"__v" : 0 }
当管理员“Johny”获得一个新的追随者时,我可以使用

       User.update(query,
         {$addToSet:{google.followers:{name:"Maria" , email:"Maria@hotmail.com"}}},
         {upsert:true,new:true}...
我的问题发生在“niklas”更改电子邮件时。使用$addToSet只需添加一个新对象。我如何更新“niklas”的现有电子邮件,或在没有此类条目的情况下添加它;
提前感谢

要更新“niklas”的现有电子邮件,您可以联系位置“$”操作员。比如:

    db.User.update(
        {"followers.name" : "niklasaa"},
       {$set: {"followers.$.email": "new-email"}}
    )

似乎你对文档的用途一无所知!如何将变量作为字段名<代码>{“niklas”:niklas@hotmail.com“}是的,您可以插入所有内容,但当您开始检索数据或根据条件/分组执行CRUD时,您会遇到困难。使用如下结构:
“followers”:[{name:“niklas”,email:niklas@hotmail.com“},…]
很抱歉延迟回答。我按照你的建议编辑了我的结构,问题仍然存在