【发布时间】:2019-04-24 10:46:28
【问题描述】:
我有两个收藏,
- 教室
- 学生
这是他们的架构
**CLASSROOM SCHEMA**
const mongoose = require('mongoose');
const classroomSchema = new mongoose.Schema({
classroomname: {
type: String
},
createdAt: { type: Date, default: Date.now },
author: {
id: {
type: mongoose.Schema.Types.ObjectId,
ref: "User",
},
},
students: {
id : {
type: mongoose.Schema.Types.ObjectId,
ref: "Student"
}
}
});
const Classroom = mongoose.model('Classroom', classroomSchema);
module.exports = Classroom;
和..
**STUDENT SCHEMA**
const mongoose = require('mongoose');
const studentSchema = new mongoose.Schema({
fullName: {
type: String
},
author: {
id: {
type: mongoose.Schema.Types.ObjectId,
ref: "User",
},
},
classroom: {
name: {
type: String
},
id: {
type: mongoose.Schema.Types.ObjectId,
ref: "classroom",
}
},
});
const Student = mongoose.model('Student', studentSchema);
module.exports = Student;
- 其中 author.id 是 user.id,谁在登录后创建了学生 在。
我确实有以下代码可以成功删除学生
router.get('/delete/:id',passportConfig.isAuthenticated,(req, res) => {
Student.findByIdAndRemove(req.params.id, (err, docs) => {
if (!err) {
res.redirect('/');
}
else {console.log('Error in classroom deletion:' +err);}
});
});
..以及用于删除教室的非常相似的代码。 我的问题是, 当我删除一个教室时,如何同时删除属于该教室的所有学生?
这是我的逻辑
find classroom id
find student.classroom.id
if student.classroom.id == classroom.id
Classroom, Student findbyid and remove
谢谢!
【问题讨论】:
标签: node.js mongodb express mongoose