如何在另一个模型中引用嵌套模型。例如,有了这个shema,我想在User
架构中引用subcategories
:
var UserSchema = Schema({
publications: [{
name:String,
categories: [{
type: Schema.Types.ObjectId,
refPath: 'Category.subcategories._id'
}]
}]
});
该类别还包含subcategories
,定义如下:
var CategorySchema = Schema({
name: String,
subcategories: [{
name: String
}]
});
我试图参考CategorySchema
的subcategories
.
在User
模式中引用Category
将完成这项工作,因为subcategories
包含在Category
中。这是您需要执行的操作:
首先,为包含以下代码的Category
模型定义一个 shema 文件:
const mongoose = require('mongoose');
const CategorySchema = new mongoose.Schema({
name: String,
subcategories: [{
name: String
}]
});
const Category = mongoose.model('Category', 'CategorySchema', 'Category');
module.exports = { Category };
其次,为包含以下代码的User
模型定义架构文件:
const mongoose = require('mongoose');
const Category = mongoose.model('Category');
const UserSchema = new mongoose.Schema({
publications: [{
name:String,
Category: Category.schema
}]
});
const User= mongoose.model('User', 'UserSchema', 'User');
module.exports = { User };