Как обновить объект внутри массива внутри другого массива в схеме mon goose? - PullRequest
0 голосов
/ 19 апреля 2020

нашел много подобных вопросов, но не ответил.

Задача

Допустим, у меня есть следующая схема mon goose:

const mySchema = new mongoose.Schema({
  sanePeoplesField: String,
  comments: [
    normalStuff: {type: Date, default: Date.now},
    damNestedAgain: [String]
  ]
})

Напомним, что damNested array находится внутри comments array в схеме.

Если бы мне повезло и я захотел изменить normalStuff (obj внутри массива), я бы сделал это:

mySchema.findOneAndUpdate({"comments._id": req.body.commentId},
{
    $push:
    {
      comments: { normalStuff: 12122020 } }
    }
})

Это бы обновило normalStuff с новым значением.

Однако мне нужно обновить поле в damNestedAgain, но я не знаю, как его достичь!

Вопрос

Как обновить вложенный массив вложенного массива, damNestedAgain, в моем примере?

1 Ответ

0 голосов
/ 19 апреля 2020
mySchema.findOneAndUpdate({"comments._id": req.body.commentId},
{
    $push:
    {
      "comments.$.damNestedAgain": req.body.commentId
    }
})

Вот и все, спасибо.

...