【问题标题】:mongoDB remove sub-arraymongoDB 删除子数组
【发布时间】:2012-05-31 04:05:55
【问题描述】:

好的,有没有一种快速的方法可以通过 PHP mongodb 删除以下内容

这是我们的 mongoDB 行

{
  "today":""
  "session": "6266262626",
  "products": [
    {
      "barcode": "27788822",
      "item": "village day ticket",
      "price": 1315,
      "qty": "3"
    },
    {
      "barcode": "8544122",
      "item": "village night ticket",
      "price": 1433,
      "qty": "1"
    }
  ]
}

我想删除产品

{
      "barcode": "8544122",
      "item": "village night ticket",
      "price": 1433,
      "qty": "1"
}

我知道如何更新和插入,但不知道如何删除它。

【问题讨论】:

    标签: php json mongodb


    【解决方案1】:

    这是一个删除项目的 mongo 命令,给定它的条形码:

    db.collection.update({session:'6266262626'},{ $pull: { products: { 条形码: '8544122' } }})

    如果你想从 products 数组中删除多个项目,给定一个条形码数组:

    db.collection.update({session:'6266262626'},{ $pull: { products: { 条形码: {$in : ['27788822','8544122'] } } }})

    我不知道这些命令的 PHP 等价物,但这里有一个使用 $pull 和 PHP 的相关问题可能会有所帮助:

    MongoDB pull array element from a collection

    这个问题已经很老了,但是在一个查询中删除多个数组项今天给我带来了麻烦,在我的情况下,上面的工作正在解决,所以也许它会帮助其他人,谢谢。

    【讨论】:

      【解决方案2】:

      阅读文档是您的朋友。使用位置运算符

      http://www.mongodb.org/display/DOCS/Updating#Updating-The%24positionaloperator

      【讨论】:

      • 什么都不回答比回答那个好。
      猜你喜欢
      • 2013-07-23
      • 2017-08-22
      • 2014-03-30
      • 2016-04-06
      • 2015-08-29
      • 2023-04-01
      • 1970-01-01
      • 2015-06-12
      • 2013-06-08
      相关资源
      最近更新 更多