Заполните вложенный объект мангустом - PullRequest
0 голосов
/ 12 февраля 2020

У меня возникла проблема, когда я пытаюсь заполнить глубоко вложенный объект в документе 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 } 

Есть идеи? Я действительно застрял в этом прямо сейчас

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...