【发布时间】: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