MongoDB: безусловные обновления? - программирование
Подтвердить что ты не робот

MongoDB: безусловные обновления?

Это кажется глупым вопросом, но я еще не нашел ответа. Если бы я просто хотел добавить одно и то же значение field- > в КАЖДУЮ запись в коллекции MongoDB, для чего была бы подходящей командой оболочки? Я попытался сделать несколько обновлений с пустым запросом ({}), но это привело к этой ошибке:

многократное обновление работает только с операторами $

Я немного озадачен тем, как обойти это. Любые предложения?

4b9b3361

Ответ 1

Ошибка говорит все: вы можете изменять только несколько документов с помощью операторов модификаторов $. У вас, вероятно, было что-то вроде этого:

> db.coll.update({ }, { a: 'b' }, false, true);

Что обычно заменит первый объект в коллекции с помощью { a: 'b' }, если multi был ложным. Вы не захотите заменять все объекты в своей коллекции одним и тем же документом!

Вместо этого используйте $set оператор:

> db.coll.update({ }, { '$set': { a: 'b' } }, false, true);

Это создаст свойство a каждого документа (при необходимости создав его) до 'b'.