【问题标题】:Can mongoose batch update based on an array of objects that matches the collection?mongoose 可以根据与集合匹配的对象数组进行批量更新吗?
【发布时间】:2020-10-29 12:17:00
【问题描述】:

我正在处理 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.js arrays json mongodb mongoose


    【解决方案1】:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    • 2023-02-05
    • 1970-01-01
    • 1970-01-01
    • 2020-11-07
    • 1970-01-01
    相关资源
    最近更新 更多