Обновите коллекцию, чтобы добавить новое поле со значением другого поля той же коллекции в массовом настроении

#mongodb #bulkupdate

#mongodb #bulkupdate

Вопрос:

Я немного новичок в MongoDB. Допустим, у меня есть коллекция, имеющая такую структуру:

 mycoll
{ 
    _id, 
    col1 -> NumberInt
}
 

И в коллекции уже есть тысячи документов. Теперь я хочу обновить каждый документ коллекции, чтобы добавить новое поле (т.Е. col2) типа NumberInt, значение которого будет таким же, как значение поля col1. Есть ли какой-нибудь способ сделать это массово, не запуская команду обновления для каждого документа? В настоящее время я использую MongoDB версии 4.4.1

Ответ №1:

Вы можете использовать функциональность Mongo updateMany().

 db.collection.updateMany(
   <filter>,
   <update>,
   {
     upsert: <boolean>,
     writeConcern: <document>,
     collation: <document>,
     arrayFilters: [ <filterdocument1>, ... ],
     hint:  <document|string>        // Available starting in MongoDB 4.2.1
   }
)
 

Проверьте эту ссылку для получения дополнительной информации,
обновите много документации