Я пытаюсь запустить несколько обновлений поля объекта в массиве. Структура выглядит так:MongoDB множественное обновление во вложенном объекте не работает
{
rs:[
{uid:"123", ufc:"bla"},
{uid:"123", ufc:"foo"},
//...
]
}
По какой-то причине обновляется только первое поле. Я читал, что я должен использовать multi:true
, чтобы решить эту проблему, но это все равно.
Я пробовал:
db.mycollection.update({"rs.uid": "123"},
{$set: {"rs.$.ufc":"test"}},
false, true
)
И:
db.mycollection.update({"rs.uid": "123"},
{$set: {"rs.$.ufc":"test"}},
{multi: true}
)
, вероятно, связано с вложенной структурой? Благодарю.
Ничего себе, это невозможно. Я проголосовал за Джиру. Подходы, предложенные в потоке, похожи на то, что могут потреблять много памяти ... Я имею в виду, что он должен загружать всю коллекцию в память. Также делайте это асинхронно ... ожидая завершения каждого обновления ... pffft. Я мог бы реструктурировать свои документы, как вы говорите, или просто пропустить запланированные функции на данный момент. – Ixx
С таким количеством голосов и запросов, я думаю, они предоставят чистое решение. Хорошо, надеюсь ... – fgakk