我正在使用php和MongoDB,我正在使用的开源库生成一个自动生成的代码来调用mongodb。它有点像ODM层。
现在,当我使用嵌入式文档时,在父文档中,我必须更新嵌入式文档集,库使用$unset
进行调用,Original:
{
"parentDocument": {
"parent_id": "1",
"embeddedDocument": {
"0": {
"childValue": "0"
},
"1": {
"childValue": "1"
},
"2": {
"childValue": "2"
}
}
}
}
根据Documentation设置值index为null并且不会将其删除。
因此,现在当我想要替换嵌入的文档集时,我必须首先删除($ unset)现有的集合,然后添加new,留下我的结果如下:
{
"parentDocument": {
"parent_id": "1",
"embeddedDocument": {
"0": null,
"1": null,
"2": {
"childValue": "2"
}
}
}
}
更新:
{{1}}
如何从数据库中清除这些数据.. ?? 我尝试了很多论坛,没有找到任何有效的解决方案。 我需要清理这些完整的数据。感谢
答案 0 :(得分:1)
您应该使用$pull
代替$unset
。
$unset
会将数组中的元素设置为null
$pull
将从数组中删除元素
您可以使用$pull:{'a.b':null}