首页 > 解决方案 > mongoose 可以根据与集合匹配的对象数组进行批量更新吗?

问题描述

我正在 Express/Node 中开展一个项目,我正在使用一个 MongoDB 数据库,该数据库具有一组课程文档,这些课程文档代表我学校系统中实时更改的课程。我的数据库中的课程文档看起来像这样:

Course Document
    {
      courseID: Number,
      restrictions: String,
      status: String,
    }

我的程序必须检查学校课程系统的变化,更新它看到的任何变化,并用这些变化更新我的私有 MongoDB 数据库。为此,我目前有一个脚本,它查看学校系统中的所有课程,并将它们记录在一个对象数组中,每个对象对应一个课程。

var allCourses =     
    [
      {
        courseID: 123456,
        restrictions: "A and B",
        status: "OPEN"
      },
      {
        courseID: 678990,
        restrictions: "A",
        status: "FULL",
      }
    ]

现在的目标是能够通过我的数据库,并跳过与数组中对应的 javascript 对象相同的文档,并更新那些不一样的文档。

显然,我可以使用 forEach 遍历我的数组,并通过按“courseID”过滤并一次更新一个文档的两个字段来更新每一门课程,但我可以预见这将花费大量时间。

我想知道是否有一个类似于 insertMany 操作的批量更新函数,它可以获取我的对象数组并更新与数组中的对象相对应的数据库文档?

标签: node.jsarraysjsonmongodbmongoose

解决方案



推荐阅读