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

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

目前我是这样使用的:

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

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

提前致谢

【问题讨论】:

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

标签: node.js mongodb


【解决方案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); }
猜你喜欢
  • 1970-01-01
  • 2021-12-23
  • 2018-04-07
  • 1970-01-01
  • 2021-08-29
  • 2015-11-30
  • 1970-01-01
  • 1970-01-01
  • 2020-12-16
相关资源
最近更新 更多