MongoDB - обновить свойство с добавочными значениями

55
3

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

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

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

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

Я не знаю, как мне это поступить.

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

спросил(а) 2018-09-25T21:19:00+03:00 1 год, 10 месяцев назад
1
Решение
68

Предполагая, что вы работаете на оболочке 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

ответил(а) 2018-09-25T22:06:00+03:00 1 год, 10 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема