$ pull удаляет все из массива объектов - PullRequest
0 голосов
/ 28 января 2019

Я использую $ pull для удаления элементов из вложенных вложенных документов, но если я хочу удалить 1 элемент из массива, он удаляет все элементы из массива

Что я делаю не так?

Я делаю $ pull здесь с ExpressJS:

getController.deleteRec = function(req,res,collection){
  var id = req.params.id;
  console.log(id);
  collection.updateOne({'subitem.messages._id': id}, {$pull: {'subitem.$.messages': {"subitem.$.messages": id}}}).
    then(function(result){
      console.log(result);
    });
};

1 Ответ

0 голосов
/ 28 января 2019

Попробуйте извлечь так:

{ 
  $pull: {'subitem.messages: {'_id': id}}
}

Предполагая, что 'subitem.messages' - это массив, из которого вы хотите извлечь элемент, имеющий {_id: id}.

...