猫鼬填充不填充所有符合条件的文档

时间:2018-06-25 03:37:56

标签: javascript node.js mongodb mongoose async-await

我有一个nodeJS应用程序和一个mongoDB数据库,并且我正在使用Mongoose建模数据库。该应用程序的功能之一是将课程存储在数据库中,然后将其获取。我第一次调用此API时,它总是获取的文档少于应返回的文档,但是对于后续调用,它将获取所有匹配的文档。

  
      
  1. 第一次调用,bulkCreate(course A)=>将A保存在数据库中=>控制台记录空数组[]
  2.   
  3. 第二次调用,bulkCreate(course B)=>将B保存到数据库中=>控制台日志[A,B]
  4.   

我不确定这是怎么回事。我认为这与在数据库中填充结果之前获取结果有关,但为此,我等待着。我可能是错的。下面是代码段。

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))
}

0 个答案:

没有答案