MongoDB - обновить свойство с инкрементными значениями - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть коллекция дилеров следующим образом.

{
    "_id" : ObjectId("5b9ba196cd5f5af83bb0dc71"),
    "name" : "SOME COMPANY",
    "outletID" : "GS0061920",
    "companyID" : "GC0050397"
}

У меня около 5000 документов в этой коллекции, где свойства outletID и companyID пусты.

Я хотел бы обновить оба этих свойства для всех документов в этой коллекции с добавочными значениями.

Я не уверен, как мне поступить об этом.

Примечание: MongoDB 3.4используется.

1 Ответ

0 голосов
/ 25 сентября 2018

Предполагается, что вы работаете в оболочке mongodb.Вы можете использовать следующее:

> var counter = 1;
> db.collection.find().forEach(
      function(elem) { 
        db.myColl.update(
          { "outletID" : null, "companyID" : null}, 
          {$set:{ outletID: counter , companyID: counter } 
          }); 
       counter++;
     });

Оболочка mongo представляет собой интерактивный интерфейс JavaScript.Я использовал JS для этой задачи.counter - это простая переменная, которая используется для обновления значений. $ set используется для обновления полей.

Оператор $ set заменяет значение поля указанным значением.Вы можете найти больше данных в официальной документации .

Я создал образец данных и проверил свою функцию.Надеюсь, это работает нормально.Image showing the commands I ran in shell

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...