mongodb使用条件查找文档并更新相应文档中的另一个字段

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongodb使用条件查找文档并更新相应文档中的另一个字段相关的知识,希望对你有一定的参考价值。

我想在我的收藏中找到任何文件:

  • 它的爱好领域是空的
  • 或其业余爱好领域不存在

然后将其爱好字段的值设置为等同于其运动场。

 db.myCollection.update(
            { $or: [{"hobby": {$exists: false} },{"hobby": ""}]}
        , {
            $set: {
                hobby: ????sports
            }
        }, {
            multi: true
        },
        function(err, result) {
            console.log(result);
            console.log(err);
        })  

使用上面的命令,我想我将把sports的值作为固定值传递给所有匹配的文档。有没有什么方法可以获得相应的运动价值并将其设定为业余爱好?

答案

这是修改后的版本正确更新值:

   db.myCollection.find({ 
      $or: [{ "hobby": { $exists: false } }, { "hobby": "" }]
    }).toArray().forEach(function (item) {
        db.myCollection.update(
          { _id: item._id },
          { $set: { hobby: item.sports } },
          { multi: true }
        )
      })
    })
另一答案

您必须在2个查询中执行此操作:

db.myCollection.find({ 
  $or: [{ "hobby": { $exists: false } }, { "hobby": "" }]
}).toArray().forEach(function (item) {
    db.myCollection.update(
      { _id: item._id },
      { $set: { hobby: item.sports } },
      { multi: true }
    )
  })
})

以上是关于mongodb使用条件查找文档并更新相应文档中的另一个字段的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MongoDB 中查找文档、更新文档并插入新文档?

如何在 MongoDB 中查找文档、更新文档并插入新文档?

如何在特定字段 MongoDB 上查找 Distinct No of Document 并根据条件打印文档数?

查找嵌套文档并相应地更新它

如何使用 Java 中的 ObjectID 更新 MongoDB 中的文档

MongoDB 查找与使用聚合指定的任何条件匹配的文档