我的数据库中有两个正在关注的集合
我要插入类似one-to-one
,one-to-many
关系的数据。
示例
我发送了以下form-data
中的数据
上述数据的name
,email
,phone
,password
存储在学生表中。
然后course_name
,course_cost
与student_id
存储到课程表中。
这是我的代码:
route/students.js
const express = require('express');
const path = require('path');
const config = require('../config/database');
const router = express.Router();
let Student = require('../models/student_model');
router.post('/add_student', function(req, res){
let data = new Student();
data.name = req.body.name;
data.email = req.body.email;
data.phone = req.body.phone;
data.password = req.body.password;
data.save(function(err, data){
if(err) throw err;
res.send(data);
});
});
module.exports = router;
models/student_model.js
const mongoose = require('mongoose');
let StudentSchema = mongoose.Schema({
name:{
type: String
},
email:{
type: String
},
phone:{
type: String
},
password:{
type: String
},
}, { collection: 'student' });
const Student = module.exports = mongoose.model('Student', StudentSchema);
我上面的代码已完成存储在
student
表中的学生数据,但是我不知道如何添加一对一关系
答案 0 :(得分:0)
我认为首先您需要重新设计架构。考虑到您有针对学生和课程的两个不同的馆藏,您需要在学生中参考课程,在课程中需要参考学生。这将帮助您执行以下类型的查询。
答案 1 :(得分:0)
在您的路线中,您需要输入姓名,电子邮件,电话,密码。然后,您尝试插入course_name,course_cost。您需要在课程集合中插入student_id
答案 2 :(得分:0)
这是一个古老的问题,但是,我相信许多人可能正在寻找这种相似的架构关系设计的解决方案。您需要在模型中声明一对多架构关系。
const StudentSchema = new Schema({
name: String,
email: String,
phone: String,
password: String,
course: [courseSchema] //this will be the relationship
})
const CourseSchema = new Schema({
course_name: String,
course_cost: String
})
const Student = mongoose.model('student', StudentSchema)
module.export = Student;