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"
}
ここで、ときどき、つぶやき ID を照合して、クラスター ドキュメントの members 属性でこれらのサブドキュメントを削除する必要があります。
ただし、この効果を達成するためのクエリを見つけることができません。基本的に、つぶやきIDは多くのクラスターに参加するため、さまざまなクラスターの「メンバー」属性の複数のサブドキュメントに表示されます。特定の tweetID に一致するすべてのクラスター (つまり、それらの members 属性) 内のすべてのサブドキュメントを削除できる一括 $pull 操作を提供したいと考えています。
いくつかの助けと直感は本当に役に立ちます。