Может ли mon goose пакетное обновление на основе массива объектов, соответствующего коллекции? - PullRequest
0 голосов
/ 09 июля 2020

Я работаю над проектом в Express / Node, и я использую базу данных MongoDB, в которой есть коллекция документов курса, представляющих курс в моей школьной системе, который изменяется в реальном времени. Все документы курса в моей базе данных выглядят следующим образом:

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

Моя программа должна проверять наличие изменений в школьной системе курса и обновлять любые изменения, которые она видит, и обновлять мою частную базу данных MongoDB с изменениями. Для sh этого у меня сейчас есть сценарий, который просматривает все курсы в школьной системе и записывает их в массив объектов, причем каждый объект соответствует курсу.

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

теперь цель состоит в том, чтобы иметь возможность go через мою базу данных и пропускать документы, которые совпадают с соответствующими объектами javascript в массиве, и обновлять те, которые не соответствуют

Очевидно, я мог бы просто перебирайте мой массив с помощью forEach и обновляйте каждый курс, фильтруя по 'courseID' и обновляя оба поля по одному документу за раз, но я могу предвидеть, что это займет много времени.

I Интересно, существует ли функция пакетного обновления, аналогичная операции insertMany, которая может принимать мой массив объектов и обновлять документы моей базы данных, соответствующие объекту в массиве?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...