Mongoose 丢失模式错误:模式没有';“未注册型号”;角色“;

Mongoose 丢失模式错误:模式没有';“未注册型号”;角色“;,mongoose,Mongoose,我正在尝试加入两个集合,并能够获得组合数据,但发现了此错误 ErrorMongoose错误:尚未为模型注册架构。名称:“MissingSchemaError” RoleSchema.js: const mongoose = require('mongoose'); const Schema = mongoose.Schema; var RoleSchema = new Schema({ role_name: {type: String, required: true}, cre

我正在尝试加入两个集合,并能够获得组合数据,但发现了此错误 ErrorMongoose错误:尚未为模型注册架构。名称:“MissingSchemaError”

RoleSchema.js:

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

var RoleSchema = new Schema({
    role_name: {type: String, required: true},
    create_time: Date,
    updated: Date
});

RoleSchema
    .virtual('url')
    .get(function () {
        return '/role/' + this._id;
    });

module.exports = mongoose.model('Role', RoleSchema, 'Role');
user_role.js:

const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const ObjectId = Schema.ObjectId;

var UserRoleSchema = new Schema({
    user_id: {type: ObjectId, ref: 'User', required: true},
    role_id: {type: ObjectId, ref: 'Role'},
    create_time: Date,
    updated: Date
});

module.exports = mongoose.model('User_Role', UserRoleSchema, 'User_Role');
app.js:

mongoose.connect(mongoDB,options);
mongoose.Promise = global.Promise;
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'MongoDB connection error:'));
userController.js:

UserRole.findOne({user_id: user._id}).populate('role_id').exec(function (error, doc) {
    //do something...
});

我试图修复它,但没有成功。

我认为类型是错误的。它不是
Schema.ObjectId
,而是
Schema.Types.ObjectId

另外,
mongoose.model('User\u Role',UserRoleSchema)
应该足够了