一次更新猫鼬中的多个文档

Posted

技术标签:

【中文标题】一次更新猫鼬中的多个文档【英文标题】:Updating multiple documents in mongoose at once 【发布时间】:2020-06-27 22:16:45 【问题描述】:

我有一个用户文档数组,每个用户都有跟随者属性,这是一个数字,我只想将此属性增加 1,然后一次更新数据库中的所有这些用户文档。

更多细节:

在请求中我有一个用户 ID 数组,我使用这些 ID 进行查询以获取一个用户文档数组。

const users = await User.find("_id": $in: req.body.ids);

每个用户文档都有一个名为 follower 的属性,它是一个数字。

const userSchema = new mongoose.Schema(

  // other attributes...........,

  followers: 
    type: Number,
    default: 0
  
);

我想增加用户数组中每个用户的关注者数量并立即更新数据库,而不发送单独更新每个用户的请求,这甚至可能吗?

提前致谢

【问题讨论】:

你能分享更多细节吗?请出示文件和预期输出 【参考方案1】:

您可以使用$inc 并运行updateMany

await User.updateMany("_id": $in: req.body.ids,  $inc:  followers: 1  );

【讨论】:

以上是关于一次更新猫鼬中的多个文档的主要内容,如果未能解决你的问题,请参考以下文章

如何更新猫鼬中的多个文档?

使用数组过滤器更新多个嵌套数组在猫鼬中不起作用

在猫鼬中更新它们时如何访问每个文档字段[重复]

如何获取 Model.countDocuments() 函数返回的文档计数并将其设置为猫鼬中的其他字段

如何更新猫鼬中的特定字段?

更新猫鼬中的嵌套模式[重复]