我是Mongo的新手,因此试图实现一个用例,我需要构建一个查询来从一个文档集合中删除数组中的数据.
这是我的一份文件:
{
"id" : 2,
"owners" : ["aa", "bb"]
}
Run Code Online (Sandbox Code Playgroud)
现在我需要构建一个查询来查找基于所有者的所有文档记录,如果存在,则从owners数组中删除它们.
例如,我发送aa了查询,然后我需要从包含该所有者的所有文档中删除它.
我找到了这个逻辑:
$db.coll.update({cond to identify document},{$pull:{'owners':{'aa':<>}}})
Run Code Online (Sandbox Code Playgroud)
但是不明白这是如何删除数据的.提前致谢!
以下查询通过删除匹配owners的owners数组来更新集合.更新查询包含三个块,
db.coll.update(
{ },
{ $pull: { owners: "aa" } },
{ multi: true }
)
Run Code Online (Sandbox Code Playgroud)
第一个块 {}:它指定要查找文档的查询,因为我们正在考虑所有文档,我们将其保留为空白
第二个块{ $pull: { owners: "aa" } }:这个块owners从所有文档中删除数组中的匹配元素.
第三块{ multi: true }:此块指定,我们正在考虑更新所有匹配文档,{ multi: false }将仅更新第一个匹配的文档
要了解更多信息,您可以点击此链接
| 归档时间: |
|
| 查看次数: |
871 次 |
| 最近记录: |