MongoDB - обновить свойство с добавочными значениями
У меня есть коллекция, называемая дилерами следующим образом.
{
"_id" : ObjectId("5b9ba196cd5f5af83bb0dc71"),
"name" : "SOME COMPANY",
"outletID" : "GS0061920",
"companyID" : "GC0050397"
}
У меня есть около 5000 документов в этой коллекции, где outletID
и companyID
свойство является пустым.
Я хотел бы обновить оба этих свойства для всех документов в этой коллекции с инкрементными значениями.
Я не знаю, как мне это поступить.
Примечание: используется MongoDB 3.4.
Предполагая, что вы работаете на оболочке 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 заменяет значение поля заданным значением. Вы можете найти больше данных в своей официальной документации.
Я создал образец данных и протестировал свою функцию. Надеюсь, он отлично работает.