Облицовка проблемы при попытке обновить элемент в массиве вспомогательного документа в Mongo. Если я считаю, что следующий документ в коллекции «ресурс»Как обновить элемент в массиве поддокумента в Mongodb
{
"_id": 1,
"resources": [
{
"resource_id": 1,
"resource_list": ["item1","item2"]
},
{
"resource_id": 2,
"resource_list": ["item4","item3"]
}
]
}
Я хочу обновить "item4"
с каким-либо другим значением, как "item5"
для "resource_id" = 2
Следующий оператор дал мне ошибку: Не удается применить позиционный оператор без соответствующего поля запроса, содержащего массив.
db.resource.update({"resources.resource_id": 2, "resources.resource_list": "item4"}, {$set: {"resources.$.resource_list.$": "item5"}})
Любая помощь по этому вопросу будет высоко оценен.
Благодаря Gergő для Вашего ответа на это. Это было действительно полезно, чтобы избежать более чем одного утверждения для этой операции, я немного изменил свою модель. Еще раз спасибо за вашу помощь по этому поводу – user3315068