Как обновить несколько элементов массива в mongodb
у меня есть документ 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": "....."
}
...
]
}
Итак, я попробовал следующий:
.update({"events.profile":10},{$set:{"events.$.handled":0}},false,true)
однако он обновляет только первый соответствующий элемент массива в каждом документе. (Это определенное поведение для $ - позиционный оператор.)
как я могу обновить все соответствующие элементы массива?
Comments