Я пытаюсь создать схему меньшего размера, которую можно повторно использовать в рамках схемы большего размера.
Определена моя схема «пользователей» (в другом файле)
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const noRights = require('../models/Roles').user_noRights;
const UserSchema = new Schema({
// these are required to create a user
name: {type: String, required: true},
email: {type: String, required: true, lowercase: true},
password: {type: String, required: true},
role: {type: String, required: true, default: noRights},
})
module.exports = User = mongoose.model('users', UserSchema)
Это работает (но не использует меньшую "пользовательскую" схему)
const PostSchema = new Schema({
text: {type: String, required: true },
date: {type: Date,default: Date.now},
user: {
type: Schema.Types.ObjectId,
ref: 'users'
}
});
Вот меньшая "пользовательская" схема, которую я хотел бы использовать:
const userData = new Schema({
type: Schema.Types.ObjectId,
ref: 'users'
});
Меньший "пользовательздесь используется схема, и она не работает:
const PostSchema = new Schema({
text: {type: String, required: true },
date: {type: Date,default: Date.now},
user: { type: userData },
});
Вот ошибка
C:\GitHub\node_modules\mongoose\lib\schema.js:717
[0] throw new TypeError('Undefined type `' + name + '` at `' + path +
[0] ^
[0]
[0] TypeError: Undefined type `Users` at `ref`
[0] Did you try nesting Schemas? You can only nest using refs or arrays.