MissingSchemaError: Схема не была зарегистрирована для модели "Роль" - PullRequest
0 голосов
/ 03 ноября 2019

Я пытаюсь объединить две коллекции и смог получить объединенные данные и обнаружил эту ошибку ErrorMongoose error: схема не была зарегистрирована для модели. имя: "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...
});

Я пытался это исправить, но не сработало.

1 Ответ

0 голосов
/ 03 ноября 2019

Я считаю, что тип неправильный. Это не Schema.ObjectId, это Schema.Types.ObjectId.

Кроме того, mongoose.model('User_Role', UserRoleSchema) должно быть достаточно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...