$ pull不从MongoDB中的数组中删除文档

时间:2017-07-14 04:00:40

标签: node.js mongodb express

我有一个如下所示的MongoDB文档:

"_id": ObjectID(48kf4kblahblahblah),
"name": "A Person's Name",
"username":  "apersonsemail@mail.com",
"password":  "a hashed password",
"formulas":  [
               {
                 "f_id": ObjectID(4k8s9blahblahblah),
                 "name": "A Name",
                 "description": "A description",
                 "ingredients": [{object}, {object}]
               }
             ]
}

我正在尝试查询基于_id的文档,然后使用formulas根据项目的f_id值从$pull数组中删除子文档

然而,它没有更新任何东西。

这是参与Express / Node应用程序,我的代码如下所示:

router.delete('/formula-list/:index', function(req, res){
  var db = req.db.collection('users');
  var index = req.params.index;
  db.updateOne({"_id": new ObjectID(req.user.id)}, { $pull: {"formulas": {"f_id": index}} }, function(err, r){
             assert.equal(null, err);
             assert.equal(1, r.modifiedCount);
             req.db.close();
           });
  res.end();
});

我得到Assertion Error: 1 == 0

我已安慰req.params.index并获得了值

59683b480986823e10f39fba

如果我控制r对象matchedCount为1,那么我知道它也在查找文档。它只是没有做任何事情。

我的问题似乎是very similar to this one,但我不打算删除多个项目,但我不知道这会如何影响我的查询结果。

谢谢。

0 个答案:

没有答案