我正在尝试构建一个从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'));
不会抛出任何错误,但嵌入的文档仍然存在!有人可以帮帮我吗?
答案 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' => '')));