删除MongoDB文档数组中的条目

时间:2012-12-12 01:39:33

标签: mongodb

说我有一个看起来像这样的文件:

{
  "_id": ObjectId("50b6a7416cb035b629000001"),
  "businesses": [{
    "name": "Biz1",
    "id": ObjectId("50b6bc953e47dc923e000001")
  }, {
    "name": "Biz2",
    "id": ObjectId("50b6ccebae0513bf52000001")
  }, {
    "name": "Biz3",
    "id": ObjectId("50b6d015c58b414156000001")
  }, {
    "name": "Biz4",
    "id": ObjectId("50b6d0c8a4cdd5e356000001")
  }]
}

我想删除

{
        "name": "Biz3",
        "id": ObjectId("50b6d015c58b414156000001")
      }

来自一系列企业。我试过这个(为了清楚起见,使用商家名称代替id):

db.users.update({'businesses.name':'Biz3'},{$pull:{'businesses.name':'Biz3'}})

但当然没有用。我知道查询部分是正确的,因为我在执行此操作时得到了文档:

db.users.find({'businesses.name' : 'Biz3'})

所以问题在于更新部分。

1 个答案:

答案 0 :(得分:2)

刚刚进行了快速测试,这是有效的

我认为尝试db.users.update({'businesses.name':'Biz3'},{$pull:{'businesses':{'name':'Biz3'}}})应该这样做