У меня возникла проблема, когда я пытаюсь заполнить глубоко вложенный объект в документе mon goose.
Эта проблема возникла в пользовательском приложении, где у меня есть ответы на вопросы, связанные с множество ответов. Моя пользовательская модель выглядит следующим образом:
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 }
Есть идеи? Я действительно застрял в этом прямо сейчас