Я пытаюсь переименовать одно поле во всех документах коллекции, сdb.collection.update() все документы
db.coll.update({},{ $rename: {'originField':'newField'} });
, но только один документ изменен, то почему?
Я пытаюсь переименовать одно поле во всех документах коллекции, сdb.collection.update() все документы
db.coll.update({},{ $rename: {'originField':'newField'} });
, но только один документ изменен, то почему?
Все обновления в MongoDB по умолчанию являются единственными. Вы должны добавить третий вариант к вашей команде, чтобы сделать:
db.coll.update({},{ $rename: {'originField':'newField'} }, {multi:true});
Или, как @totymedli отметил, если вы используете 3.2 и выше вы можете использовать updateMany()
: MongoDB: update every document on one field
db.collectionname.update({ "field" : "oldvalue" }, { $set:{ "field" : "newvalue" } }, { multi : true });
Как это сделать для oldvalue + "some string" –
обновлений по умолчанию являются единственное, вам нужно добавить ', {multi: true}' в качестве третьего параметра – Sammaye
@Sammaye спасибо, что это ответ – JuanPablo
@Sammaye вы можете добавить комментарий, как ответ на закрытие? – JuanPablo