首页 > 解决方案 > MongoDB - 使用增量值更新属性

问题描述

我有一个集合称为经销商如下。

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

我在这个集合中有大约 5000 个文档,其中outletID属性companyID为空。

我想用增量值更新此集合中所有文档的这两个属性。

我不确定我应该怎么做。

注意:MongoDB 3.4 正在使用中。

标签: mongodb

解决方案


假设您在 mongodb shell 上运行。您可以使用以下内容:

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

mongo shell 是一个交互式 JavaScript 界面。我已经使用 JS 来完成这项任务。counter 是一个简单的变量,用于更新值。$set用于更新字段。

$set 运算符将字段的值替换为指定的值。您可以在其官方文档中找到更多数据。

我创建了一个示例数据并测试了我的功能。希望它工作正常。 显示我在 shell 中运行的命令的图像


推荐阅读