$[] (positional-all)
更新操作符已在mongodb 3.6版中添加。但它不适用于猫鼬。
我想更新特定用户allTasks
到paid : 0
的{{1}}数组的所有元素
我正在使用的查询是:
paid :1
UserSchema
User.update({
_id: userId,
"allTasks.paid":0
},{
$set : {
"allTasks.$[].paid":1
}
})
上面给出的查询无法正常工作,如果我缺少某些东西或做错了什么,谁能告诉我?
答案 0 :(得分:0)
对于其他面临相同问题的人:
问题是Mongodb
和mongoose
版本。
另外,您可能需要使用setFeatureCompatibilityVersion : 3.6
。
来自this的答案:
当从mongodb的较低版本切换到较高版本时,必须为mongodb设置setFeatureCompatibilityVersion,
启用或禁用与数据不兼容的持久性功能 MongoDB的早期版本。您只能发出 针对管理员数据库的setFeatureCompatibilityVersion。
您可以简单地通过在mongo shell中运行此命令来进行设置
db.adminCommand( { setFeatureCompatibilityVersion: "3.6" } )