mon goose $ pull get nModified: 0 - PullRequest
       4

mon goose $ pull get nModified: 0

0 голосов
/ 23 января 2020

Проведя целый день с этой проблемой ... мне нужна помощь.

Узел v12.14.1 mon goose v5.8.9 mongoDB v4.2.1

Так что все до дата.

Я пробовал много способов, но вот как это должно работать:

model.updateOne({_id:model_id},{$pull: {videos: {_id:video_id},{multi:true})

, но потом я получаю

{ n: 1, nModified: 0, ok: 1 }

Итак, он найден, нет ошибки, но это не удалить / изменить объект.

Не могу понять, что должно быть не так.

Ответы [ 2 ]

0 голосов
/ 24 января 2020

Иногда ... Иногда ошибка происходила еще до того, как мы достигли этой строки кода ...

Трудно было найти причину в выводе терминала, а также в компасе все выглядит нормально.

Но в тот момент, когда я сохраняю видео и обновляю пользователя, чтобы в его коллекции также были идентификатор видео, заголовок и фрагмент, я сделал это:

$push: {
    videos: [{
        _id: data._id,
        title: data.title,
        slug: data.slug
    }]
}

Да, я выдвинул пустой массив, содержащий объект в массив. Но, как я уже сказал, выходные данные, а также .find () были в порядке.

После того, как я снял скобки [] и протестировал новый набор данных, $ pull отлично работает.

Думаю, это была моя самая сложная ошибка ... самая сложная ошибка до сих пор!

Спасибо за вашу помощь!

0 голосов
/ 23 января 2020

Итак, исходя из вашего запроса, я предполагаю, что ваш документ выглядит следующим образом:

{
   _id: "<some uuid>",
   videos: [
      {
         _id: "<some uuid>"
      },
      {... n}
   ]
}

Если это так, ваш запрос на обновление выглядит хорошо, и, возможно, вам нужно рассмотреть ввод video_id. Не могли бы вы попробовать эквивалентную находку?

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