Node.js mongodb节点js中的外键和主键关系
我使用节点js和mongoDb作为数据库。我已经创建了两个不同id的模式名称主题和教室。在第三个模式名时间表中,我希望前两个模式中的id成为时间表模式中的外键。在Mongodb有可能吗 主题模式Node.js mongodb节点js中的外键和主键关系,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我使用节点js和mongoDb作为数据库。我已经创建了两个不同id的模式名称主题和教室。在第三个模式名时间表中,我希望前两个模式中的id成为时间表模式中的外键。在Mongodb有可能吗 主题模式 var mongoose = require('mongoose'); var shortid = require('shortid'); var SubjectSchema = new mongoose.Schema ({ subject_id: { required:
var mongoose = require('mongoose');
var shortid = require('shortid');
var SubjectSchema = new mongoose.Schema ({
subject_id: {
required: true,
'type': String,
'default': shortid.generate
},
subject_name: {
type:String,
required:true,
},
subject_darjah:{
type:String,
required:true,
}
});
var Subject = mongoose.model('Subject', SubjectSchema);
module.exports = Subject;
var mongoose = require('mongoose');
var shortid = require('shortid');
var ClassroomSchema = new mongoose.Schema ({
classroom_id: {
required: true,
'type': String,
'default': shortid.generate
},
classroom_name: {
type:String,
required:true,
},
classroom_blok:{
type:String,
required:true,
},
classroom_floor: {
type:String,
required:true,
},
});
var Classroom = mongoose.model('Classroom', ClassroomSchema);
module.exports = Classroom;
var mongoose = require('mongoose');
var shortid = require('shortid');
var TimetableSchema = new mongoose.Schema ({
timeslot_id: {
required: true,
'type': String,
'default': shortid.generate
},
})
课堂模式
var mongoose = require('mongoose');
var shortid = require('shortid');
var SubjectSchema = new mongoose.Schema ({
subject_id: {
required: true,
'type': String,
'default': shortid.generate
},
subject_name: {
type:String,
required:true,
},
subject_darjah:{
type:String,
required:true,
}
});
var Subject = mongoose.model('Subject', SubjectSchema);
module.exports = Subject;
var mongoose = require('mongoose');
var shortid = require('shortid');
var ClassroomSchema = new mongoose.Schema ({
classroom_id: {
required: true,
'type': String,
'default': shortid.generate
},
classroom_name: {
type:String,
required:true,
},
classroom_blok:{
type:String,
required:true,
},
classroom_floor: {
type:String,
required:true,
},
});
var Classroom = mongoose.model('Classroom', ClassroomSchema);
module.exports = Classroom;
var mongoose = require('mongoose');
var shortid = require('shortid');
var TimetableSchema = new mongoose.Schema ({
timeslot_id: {
required: true,
'type': String,
'default': shortid.generate
},
})
时间表模式
var mongoose = require('mongoose');
var shortid = require('shortid');
var SubjectSchema = new mongoose.Schema ({
subject_id: {
required: true,
'type': String,
'default': shortid.generate
},
subject_name: {
type:String,
required:true,
},
subject_darjah:{
type:String,
required:true,
}
});
var Subject = mongoose.model('Subject', SubjectSchema);
module.exports = Subject;
var mongoose = require('mongoose');
var shortid = require('shortid');
var ClassroomSchema = new mongoose.Schema ({
classroom_id: {
required: true,
'type': String,
'default': shortid.generate
},
classroom_name: {
type:String,
required:true,
},
classroom_blok:{
type:String,
required:true,
},
classroom_floor: {
type:String,
required:true,
},
});
var Classroom = mongoose.model('Classroom', ClassroomSchema);
module.exports = Classroom;
var mongoose = require('mongoose');
var shortid = require('shortid');
var TimetableSchema = new mongoose.Schema ({
timeslot_id: {
required: true,
'type': String,
'default': shortid.generate
},
})
MongoDB中有一个参考概念,更多信息请查看官方文件。 您不需要有自己的id字段。MongoDB在所有文档中添加自动生成的唯一id 是这样的:
timeslotRef: {
type: Schema.Types.ObjectId,
ref: "TimeSlot",
required: true,
},
参考文献