PHP MongoDB驱动程序-删除文档内部的数组键

时间:2018-07-17 23:59:05

标签: php arrays mongodb key pecl

我正在尝试从array key中删除特定的MongoDB document

结构

{
    "_id": "5b4d2548d6bd1de5ba2a7180",
    "Fruits": {
        "Apple": [{
                "weight": "0.502",
                "quantity": 1000,
                "ts": 1531870931
            },
            {
                "weight": "0.0334",
                "quantity": 345,
                "ts": 1531870931
            }
        ],
        "Banana": [{
            "weight": "0.302",
            "quantity": 10,
            "ts": 1531870931
        }]
    }
}

我想从Apple中删除元素database

我找到了非常相似的解决方案,但是它们都删除了array的一个元素(就像Apple中的一个条目一样)。

document中始终只有一个collection

PHP代码(不起作用)

$bulk = new MongoDB\Driver\BulkWrite();
$bulk->update(array(), 
              array('$pull' => array("Fruits" => array("Apple"))),
              ["limit" => 1, '_id' => -1, 'upsert' => true]);

$result = $this->db->executeBulkWrite($db . '.' . $collection, $bulk);

响应

0修改,更新,删除或添加的条目;不变的DB

预期结果

{
    "_id": "5b4d2548d6bd1de5ba2a7180",
    "Fruits": {
        "Banana": [{
            "weight": "0.302",
            "quantity": 10,
            "ts": 1531870931
        }]
    }
}

0 个答案:

没有答案