Mam kolekcję w MongoDB, który jest jak następuje:
{
"_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"
}
]
}
Zasadniczo, kolekcja mają klastry, w których klaster ma pole _id
i pole members
. Pole Członkowie jest zbiorem dokumentów o następującym formacie.
{
"participationCoeff" : 1,
"tweetID" : "5327010328645530500"
}
Teraz, od czasu do czasu, muszę usunąć te dokumenty podrzędne członkowie atrybut dokumentu klastra, dopasowując tweetID.
Jednak nie mogę znaleźć zapytania, aby uzyskać ten efekt. Zasadniczo identyfikator tweetID będzie uczestniczył w wielu klastrach, a zatem pojawi się w wielu pod-dokumentach o atrybutach "członków" różnych klastrów. Chcę dostarczyć operację zbiorczego pobierania $, w której mogę usunąć wszystkie dokumenty podrzędne we wszystkich klastrach (to jest atrybut ich członków), które pasują do określonego identyfikatora tweetID.
Pomoc i intuicja będą naprawdę pomocne.
uzyskiwanie następującego błędu. 'Nie można zastosować $ pull/$ pullAll modyfikator do tablicy innej niż" – VaidAbhishek
@VaidAbhishek Oznacza to, że masz trochę dokumentów w kolekcji, gdzie 'member' nie jest tablicą. – JohnnyHK
Nie sądzę, że tak jest w przypadku mojej kolekcji. członkowie będą atrybutem ściśle typu tablicowego klastra. Czy można to zrobić za pomocą agregacji! – VaidAbhishek