Заполнение Mongoose не заполняется всеми документами, соответствующими критериям - PullRequest
0 голосов
/ 25 июня 2018

У меня есть приложение nodeJS и база данных mongoDB, и я использую Mongoose для моделирования БД. Одной из функций приложения является сохранение курсов в базе данных и их выборка. Когда я в первый раз вызываю этот API, он всегда выбирает на один документ меньше, чем должен возвращать, но для последующих вызовов он выбирает все соответствующие документы.

  1. Первый вызов, bulkCreate (курс A) => сохраняет A в базе данных => консольный журнал пустой массив []
  2. Второй вызов, bulkCreate (курс B) => сохраняет B в базе данных => журналы консоли [A, B]

Я не уверен, что здесь происходит. Я думаю, что это связано с получением результата до того, как он будет заполнен в базе данных, но для этого у меня есть ожидание. Хотя я могу ошибаться. Ниже приведен фрагмент кода.

async bulkCreateCourses(req, res, next) {  
  try {
    const courses = req.body.courses || []
    const institutionName = req.body.institutionName

    for (let course of courses) {
      const newCourse = await Course.create({
        name: course.name,
        description: course.description,
        location: course.location,
        credits: course.credits,

      })

      await Institution.findOneAndUpdate({
        name: institutionName
      }, {
        $push: {
          courses: newCourse
        }
      }, {
        new: true
      })
    }   
  }    
  const selectedInstitution = await Institution
  .findOne({
    name: institutionName
  })    .populate({     
    path: 'courses',
    match: {
      location: 'Plant Hall',
      credits: 4     
    }    
  })    console.log(JSON.stringify(selectedInstitution.courses, null, 2))
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...