【发布时间】:2020-06-09 18:18:15
【问题描述】:
我有一个“部门”的猫鼬模型和另一个“课程”的模型。一对多的关系。在课程文档的部门字段下保存部门 ID。我想查询所有部门并在一个请求中填充他们的所有课程。 这是课程架构的代码
const mongoose = require('mongoose')
const courseSchema = new mongoose.Schema(
{
name:{
type: String,
trim: true,
required: true
},
department:{
type: mongoose.Schema.Types.ObjectId,
required: true,
ref: 'Department'
}
module.exports = mongoose.model('Course', courseSchema)
部门代码
const mongoose = require('mongoose')
const validator = require('validator')
const bcrypt = require('bcryptjs')
const departmentSchema = new mongoose.Schema({
title:{
type: String,
required: true
},
admin: {
type: mongoose.Schema.Types.ObjectId,
trim: true,
}
departmentSchema.virtual('courses',{
ref: 'Course',
localField: '_id',
foreignField: 'department'
})
const Department = mongoose.model(' Department',departmentSchema)
module.exports = Department
这是获取所有部门的路线
router.get('/departments', async (req, res)=>{
Department.find().populate('courses').exec(function (err, departments) {
if (err) {
res.status(500).send(err)
}
res.status(200).send(departments)
})
})
此代码仅返回部门而不填充课程数组。
【问题讨论】:
-
execPopulate() 已在猫鼬中删除。
标签: node.js mongodb express mongoose