使用$ pull从mongoDB数组中删除单个项目

时间:2017-04-14 22:38:20

标签: arrays mongodb mongoose

我正在努力做问题的标题。从对象数组中删除单个项目。我正在尝试使用_id (ObjectID)删除特定对象。我已经编写了这个查询,因为它可以在下面的代码中看到:$pull: { 'ARRAY': {$elemMatch: {_id: idToRemove}}}。接下来会发生什么可能让你震惊数组中的所有项目都将被删除......

以下是发送查询的nodeJS应用程序的代码:

var findOne = { 'User.username': req.user.User.username }; var query = { $pull: { 'User.Polls': {$elemMatch: {_id: req.body.pollID}}}}; User.findOneAndUpdate(findOne, query, function (err, response) {//EVERYTHING GOT REMOVED});

这是mongod结构photo]

的照片

1 个答案:

答案 0 :(得分:0)

我自己解决了。我使用的是User.Polls._id,它没有指向我所拥有的数组(民意调查)。之后我通过使用$ elemMatch选择整个文档来创建此错误。通过删除$ elemMatch我的问题得到了解决。这是最终查询$ pull:{' User.Polls':{_ id:req.body.pollID}}