我有一个Mongo文档,其中包含一系列元素.
我想重置.handled数组中所有对象的属性.profile= XX.
该文件采用以下形式:
{
"_id": ObjectId("4d2d8deff4e6c1d71fc29a07"),
"user_id": "714638ba-2e08-2168-2b99-00002f3d43c0",
"events": [{
"handled": 1,
"profile": 10,
"data": "....."
} {
"handled": 1,
"profile": 10,
"data": "....."
} {
"handled": 1,
"profile": 20,
"data": "....."
}
...
]
}
Run Code Online (Sandbox Code Playgroud)
所以,我尝试了以下内容:
.update({"events.profile":10},{$set:{"events.$.handled":0}},false,true)
Run Code Online (Sandbox Code Playgroud)
但是,它仅更新每个文档中第一个匹配的数组元素.(这是$的定义行为- 位置运算符.)
如何更新所有匹配的数组元素?