以下失败:
db.test.update({_id:102},{$pushAll:{our_days:["sat","thurs","frid"]}, country:"XYZ"}, {upsert:true})
错误消息:"Invalid modifier specified: country"
正确的方法似乎是:
db.test.update({_id:102},{$pushAll:{our_days:["sat","thurs","frid"]}, $set:{country:"XYZ"}}, {upsert:true})
在同一个更新文档中,我不能将像“$ pushAll”这样的修饰符与字段:值等简单赋值混合使用?相反,我必须使用$ set修饰符进行简单的赋值?
文档中是否有描述此行为的内容?
答案 0 :(得分:0)
这是因为db.test.update({_id : 1}, {country : 1})
只会将整个文档更改为country = 1,从而删除其他所有内容。
所以很可能mongo聪明告诉你:你想要更新特定的元素,同时删除所有东西(以及那个元素)用country = 1替换它。很可能这不是你想要的。所以我宁愿犯错误。
关于文档 - 我认为最好的方法是重新阅读mongodb update。