我有一个nodeJS应用程序和一个mongoDB数据库,并且我正在使用Mongoose建模数据库。该应用程序的功能之一是将课程存储在数据库中,然后将其获取。我第一次调用此API时,它总是获取的文档少于应返回的文档,但是对于后续调用,它将获取所有匹配的文档。
- 第一次调用,bulkCreate(course A)=>将A保存在数据库中=>控制台记录空数组[]
- 第二次调用,bulkCreate(course 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))
}