1

我在使用嵌入式文档时遇到了奇怪的行为,我不知道是我做错了什么还是一个错误。我已经像这样定义了我的考试模式

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 数组。有人可以告诉我我哪里弄错了吗?

4

0 回答 0