我想将Person链接到Divisions内的一个细分。
Divisions = new Schema({
division_name: String
subdivisions: [{
subdivisions_name: String
}]
})
People = new Schema({
name: String,
subdivision: *???*
})
查看存储的文档,细分有_id
,所以我认为这可能是一件事。
要说清楚,我有许多不同深度的文档,很多文档可能链接到任何给定的文档,所以它不像上面的模式那么简单,但如果有人可以证明这一点,我可以根据我的模型进行调整。
在不将Divisions拆分为多个模式的情况下这样做会更受欢迎。
答案 0 :(得分:1)
通常这可以通过填充来实现。
var subdivisionSchema = new Schema({
name: String
});
var divisionSchema = new Schema({
division_name: String
subdivisions: [subdivisionSchema]
});
var peopleSchema = new Schema({
name: String,
subdivision: {type: mongoose.Schema.Types.ObjectId, ref: 'Divisions'},
});
// Connect to DB and instantiate models
var db = mongoose.connect('enter your database here');
var People = db.model('People', peopleSchema);
var Division = db.model('Division', divisionSchema);
var Subdivision = db.model('Subdivision', subdivisionSchema);
// Find and populate
People.find({}).populate('subdivisions.name').exec(function(err, items) {
console.log(peoples[0].divisions[0].subdivisions.name);
});