2017-04-14 96 views
0

我正在尝试做问题的标题。从一组对象中删除单个项目。我正在尝试使用_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]

回答

0

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