从MongoDB PHP中删除嵌入的文档

时间:2016-12-02 13:31:44

标签: php mongodb laravel

我正在尝试构建一个从PHP中的MongoDB文档中删除嵌入文档的查询。我现在拥有的是:

$collection->update(array("_id" => new MongoId($id)),
        array('$unset' => 'BUSCO.short_summary_data'));

我也尝试过:

$collection->remove(array("_id" => new MongoId($id)),
        array('$unset' => 'BUSCO.short_summary_data'));

不会抛出任何错误,但嵌入的文档仍然存在!有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:2)

您当前使用JSON编写的语句如下所示:

{ $unset: 'BUSCO.short_summary_data' }

但根据documentation

  

$ unset运算符删除特定字段。考虑以下   语法:

{ $unset: { <field1>: "", ... } }
     

$ unset表达式中的指定值(即“”)不会影响操作。

所以$unset期望一个具有键值对的数组。试试:

$collection->update(array("_id" => new MongoId($id)),
        array('$unset' => array('BUSCO.short_summary_data' => '')));