我在使用嵌入式文档时遇到了奇怪的行为,我不知道是我做错了什么还是一个错误。我已经像这样定义了我的考试模式
var ExameSchema = new Schema({
_perguntas: [{
type: Schema.ObjectId,
ref: 'Pergunta'
}],
created: {
type: Date,
default: Date.now
}
});
我的 Pergunta Schema 是这样的
var PerguntaSchema = new Schema({
created: {
type: Date,
default: Date.now
},
_exame: {
type: Schema.ObjectId,
ref: 'Exame',
required:'Um pergunta tem de estar associado a uma Exame'
},
_alternativas:[{
type:Schema.ObjectId,
ref:'Alternativa'
}]
});
和我这样的 Alternativa 模式
var AlternativaSchema = new Schema({
conteudo: {
type: String,
default: '',
//required: 'Please fill Alternativa conteudo',
trim: true
},
created: {
type: Date,
default: Date.now
},
pergunta: {
type: Schema.ObjectId,
ref: 'Pergunta'
}
});
调用
Exame.find().populate('_perguntas')
将使用数组中的 perguntas 对象填充检查对象,但调用Exame.find().populate('_perguntas').populate('_alternativas');
或Exame.find().populate('_perguntas').populate('_perguntas._alternativas');
如官方文档中所述,不会使用替代文档子填充 _perguntas 对象,而是返回一个 objectId 数组。有人可以告诉我我哪里弄错了吗?