【发布时间】:2021-05-21 21:50:50
【问题描述】:
我试图通过保存它们之间的引用将 2 个集合链接在一起,但我不知道如何推入数组。我有以下架构:
公司架构
const mongoose = require('mongoose')
const companySchema = mongoose.Schema({
name: {
type: String,
required: true
},
projects: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'Project'
}]
})
module.exports = mongoose.model('company', companySchema, 'companies')
项目架构
const mongoose = require('mongoose')
const projectSchema = mongoose.Schema({
name: {
type: String,
required: true
},
company: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Company'
}
})
module.exports = mongoose.model('project', projectSchema, 'projects')
我的创建项目路由器如下所示
router.post('/create', async function(req, res) {
try {
let project = new Project({ name: req.body.name, company: req.body.company })
await project.save()
res.status(201).send({ project })
} catch (error) {
res.status(500).json({
error: 'Server error while creating project'
})
}
})
它正确地创建了Project。但现在我还需要将新创建的Project 推入Company 模式的projects 数组中。非常感谢您的帮助。
【问题讨论】:
标签: mongodb express mongoose schema