NodeJS MongoDb updateMany() 有条件?

Posted

技术标签:

【中文标题】NodeJS MongoDb updateMany() 有条件?【英文标题】:NodeJS MongoDb updateMany() with a condition? 【发布时间】:2019-01-07 12:33:22 【问题描述】:

我想用 JSON 对象数组更新 MongoDb 集合。 但是,我希望更新忽略数据库中已经存在的任何对象。 听起来很简单,但让我知道对象是否存在的关键不是“_id”,而是不同的“id”(或其他键)。 这可能吗?

目前我是这样使用的:

dbHandle.collection('contents').updateMany(contents);

其中 'contents' 是 JSON 对象的数组。

提前致谢

【问题讨论】:

我认为您不是在寻找update,因为您不想更改任何现有记录...这可能会有所帮助***.com/questions/32430384/… 所以我看到您发布的链接中的代码不是使用 updateMany 而是使用 updateOne - 所以不是真正的批量操作 如果有一个数据库中的文档示例和一个内容变量示例以及预期结果是什么,将会很有用 能否为您的对象数组展示一些示例 【参考方案1】:

以下操作会更新所有违规大于 4 的文档并 $set a flag for review:

try 
   db.restaurant.updateMany(
       violations:  $gt: 4  ,  //Your Condition
       $set:  "Review" : true    //YOUR JSON contents
   ); 
 catch (e) 
   print(e);

相应地更改条件。

【讨论】:

并非如此。它会更像这样:(伪)try db.restaurant.updateMany( id: $ne: [any 'id' that exist] , //Your Condition $set: "Review" : true //你的 JSON 内容 ); 捕捉 (e) 打印(e);

以上是关于NodeJS MongoDb updateMany() 有条件?的主要内容,如果未能解决你的问题,请参考以下文章

使用updateMany的upsert的MongoDB c#驱动程序

updateMany在mongodb中,其中record = NaN to record = 0

mongoose 中的 UpdateMany 无法正常工作,但直接在 mongodb 中可以正常工作

MongoDB数据库常用SQL命令

MongoDB之update

MongoDB - 数组元素作为变量