首页 > 解决方案 > db.collections.updateOne(filter,update,options) 不适用于 $pull 运算符

问题描述

我只是在带有 $pull 运算符的 mongo shell 上运行 db.collections.updateOne() 查询。它与 $set 运算符按预期工作,但不影响 $pull 的文档。我在这里错过了什么吗?谢谢

我找到了其他人在此处发布的相同问题的答案如何在猫鼬中删除嵌入式方案文档?

我似乎看不出我哪里出了问题

db.vendors.findOne({"_id":ObjectId("5da0343c724f9d0531eeaa4a")})

这是我需要更新的文件:

{
    "_id" : ObjectId("5da0343c724f9d0531eeaa4a"),
    "elements" : [
        ObjectId("5da03451724f9d0531eeaa4b")
    ],
    "packages" : [ ],
    "title" : "test again",
    "slug" : "celebration-company",
    "__v" : 1,
    "department" : ObjectId("5d9892b1c46b6306b2ce64aa")
}

这是我在 shell 上运行的内容:

db.vendors.updateOne({"_id":ObjectId("5da0343c724f9d0531eeaa4a")},
{$pull:
    {"elements":
           {"_id":ObjectId("5da03451724f9d0531eeaa4b")}
     }
  })

结果:

{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 0 }

标签: mongodb

解决方案


推荐阅读