【问题标题】:Removing a single Item from a mongoDB array using $pull使用 $pull 从 mongoDB 数组中删除单个项目
【发布时间】:2017-04-15 22:59:59
【问题描述】:

我正在尝试按照问题的标题进行操作。从对象数组中删除单个项目。我正在尝试使用_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结构的照片

【问题讨论】:

    标签: arrays mongodb mongoose


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-08
      • 2012-02-21
      • 2013-02-13
      • 2021-01-28
      • 1970-01-01
      • 1970-01-01
      • 2016-08-03
      相关资源
      最近更新 更多