У меня есть коллекция в 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
. Поле Members - это массив документов, имеющих следующий формат.
{
"participationCoeff" : 1,
"tweetID" : "5327010328645530500"
}
Теперь, время от времени, я должен удалить эти поддокументы в атрибуте участников документа кластера, сопоставляя tweetID.
Однако я не могу найти запрос для достижения этого эффекта. В принципе, tweetID будет участвовать во многих кластерах и, следовательно, будет отображаться в нескольких поддокументах атрибута "members" различных кластеров. Я хочу предоставить массовую операцию $pull, где я могу удалить все поддокументы во всех кластерах (т.е. Их атрибуты членов), которые соответствуют конкретному tweetID.
Некоторая помощь и интуиция будут действительно полезны.