Я просто хотел добавить другое решение, которое работает для меня и довольно просто. Здесь это просто массив тегов (строк), поэтому чтобы обновить тег с именем «test» до «change», просто сделайте это:

я есть документ 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)

Однако он обновляет толькопервый соответствующий элемент массива в каждом документе. (Это определенное поведение для$ - позиционный оператор.)

Как я могу обновитьвсе соответствующие элементы массива?

Ответы на вопрос(1)

Ваш ответ на вопрос