MongoDB/PHP按键取消设置数组

MongoDB/PHP按键取消设置数组,php,mongodb,Php,Mongodb,我有一个具有嵌套数组的文档。我想按其键值删除数组中的项。我已尝试使用以下工具进行更新: array('$unset'=>array('item.key'=>1)) array('$pull'=>array('item.key'=>1)) 执行,$unset,保留键,但将值置空,我想完全删除它。拉什么也没做 有什么建议吗 谢谢大家! 要使用$pull必须指定要删除的整个数组元素,幸运的是$pull的特殊之处在于,您可以为要删除的元素指定匹配条件 以下是一个例子: db.array.update({

我有一个具有嵌套数组的文档。我想按其键值删除数组中的项。我已尝试使用以下工具进行更新:

array('$unset'=>array('item.key'=>1))

array('$pull'=>array('item.key'=>1))

执行,
$unset
,保留键,但将值置空,我想完全删除它。拉什么也没做

有什么建议吗


谢谢大家!

要使用
$pull
必须指定要删除的整个数组元素,幸运的是
$pull
的特殊之处在于,您可以为要删除的元素指定匹配条件

以下是一个例子:

db.array.update({},{$pull:{a:{"key2":{$exists:true}}}},{multi:true})
这将删除“key2”作为keyname存在的数组元素,而不考虑其值。 听起来这就是你想要的


这里有一个。

它为null是有充分理由的,主要是由于在该数组上执行其他操作以及索引变得混乱等等,不幸的是,您需要在客户端执行此操作,除非您在代码中考虑null或执行两个查询,一个为null,另一个为我删除那些null,谢谢!你能回答这个问题,我会选择你吗?实际上,Asyas可能会更好。我没想过用$pull这样。