我是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"的现有电子邮件?或者如果没有这样的条目,则添加它; 提前致谢
答案 0 :(得分:0)
要更新" niklas"的现有电子邮件,您可以使用位置" $"运营商。类似的东西:
db.User.update(
{"followers.name" : "niklasaa"},
{$set: {"followers.$.email": "new-email"}}
)