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这样。