mongodb-我不能同时使用$pushAll和简单赋值进行更新

mongodb-我不能同时使用$pushAll和简单赋值进行更新,mongodb,Mongodb,以下操作失败: db.test.update({_id:102},{$pushAll:{our_days:["sat","thurs","frid"]}, country:"XYZ"}, {upsert:true}) 错误消息:“指定的修改器无效:国家” 正确的方法似乎是: db.test.update({_id:102},{$pushAll:{our_days:["sat","thurs","frid"]}, $set:{country:"XYZ"}}, {upsert:true}) 那么

以下操作失败:

db.test.update({_id:102},{$pushAll:{our_days:["sat","thurs","frid"]}, country:"XYZ"}, {upsert:true})
错误消息:
“指定的修改器无效:国家”

正确的方法似乎是:

db.test.update({_id:102},{$pushAll:{our_days:["sat","thurs","frid"]}, $set:{country:"XYZ"}}, {upsert:true})
那么,是不是在同一个更新文档中,我不能将“$pushAll”这样的修饰符与field:value这样的简单赋值混合使用?相反,我必须使用$set修饰符进行简单的赋值


文档中是否有描述这种行为的内容

发生这种情况是因为
db.test.update({u id:1},{country:1})
只会将整个文档更改为country=1,从而删除所有其他内容

所以,mongo很可能会告诉您:您希望更新特定的元素,同时删除所有内容(以及该元素),以country=1替换它。很可能这不是你想要的。所以我宁愿犯错误

关于文档,我认为最好的方法是重新阅读