尝试填充猫鼬文档的深层嵌套对象时遇到问题。
此问题来自一个自定义应用程序,其中我有一个测验答案,这些答案与一组答案相关联。 我的用户模型如下:
const UserSchema = new mongoose.Schema(
{
nickname: {
type: String,
required: true,
},
chapterAnswers: [
{
chapter_id: { type: mongoose.Schema.Types.ObjectId, ref: 'Chapter' },
answers: [
{
question_id: { type: mongoose.Schema.Types.ObjectId },
set_id: { type: mongoose.Schema.Types.ObjectId },
answer_id: { type: mongoose.Schema.Types.ObjectId, ref: 'Answer' }
}
]
}
]
},
{
collection: 'users'
}
);
我的答案模型:
const Answer = new Schema({
label: {
type: String,
default: 'Set...'
},
set : [
{
label : { type : String }
}
]})
我想用答案模型填充字段set_id,因为我的输入看起来像这样:
对于答案集:
...
_id : 123,
set: [
{label : "Answer 1", _id : 1234},
{label : "Answer 1", _id : 1235},
]...
对于用户集合:
chapterAnswers [
{_id: xxx, question_id: xxx, set_id: 123, answer_id: 12345}
]
这是我到目前为止尝试过的:
UserModel.find({})
.populate("chapterAnswers.answers.set_id", "set._id")
但是这使我在此位置没有输入空字段:
{ _id: 5e42bcb7d49b181358dfd4c3,
question_id: 5e42b8feb3ab0c106dd9ef6a,
set_id: null,
answer_id: 5e42b975b3ab0c106dd9ef72 }
有什么想法吗?我现在真的很坚持这一点