我在 MongoDB 中有一个集合,如下所示:
{
"_id" : "5327010328645530500",
"members" : [
{
"participationCoeff" : 1,
"tweetID" : "5327010328645530500"
},
{
"participationCoeff" : 1,
"tweetID" : "2820402625046999289"
},
{
"participationCoeff" : 0.6666666666666666,
"tweetID" : "6122060484520699114"
},
{
"participationCoeff" : 1,
"tweetID" : "4656669980325872747"
}
]
}
{
"_id" : "2646953848367646922",
"members" : [
{
"participationCoeff" : 1,
"tweetID" : "2646953848367646922"
},
{
"participationCoeff" : 0.75,
"tweetID" : "7750833069621794130"
},
{
"participationCoeff" : 0.5,
"tweetID" : "6271782334664128453"
}
]
}
基本上,集合有集群,其中一个集群有一个_id
字段和一个members
字段。成员字段是一个文档数组,具有以下格式。
{
"participationCoeff" : 1,
"tweetID" : "5327010328645530500"
}
现在,有时,我必须通过匹配 tweetID 来删除集群文档的 members 属性中的这些子文档。
但是,我无法找到实现此效果的查询。基本上,一个 tweetID 将参与许多集群,因此将出现在各个集群的“成员”属性的多个子文档中。我想提供一个批量 $pull 操作,我可以在其中删除与特定 tweetID 匹配的所有集群(即它们的成员属性)中的所有子文档。
一些帮助和直觉将非常有帮助。