Node.js mongodb节点js中的外键和主键关系

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:

我使用节点js和mongoDb作为数据库。我已经创建了两个不同id的模式名称主题和教室。在第三个模式名时间表中,我希望前两个模式中的id成为时间表模式中的外键。在Mongodb有可能吗

主题模式

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, 
},
参考文献