ho una collezione in MongoDB, che è come segue:
{
"_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"
}
]
}
In sostanza, la raccolta ha cluster, in cui un gruppo ha un campo _id
e un campo members
. Il campo Membri è una serie di documenti, con il seguente formato.
{
"participationCoeff" : 1,
"tweetID" : "5327010328645530500"
}
Ora, di tanto in tanto, devo eliminare questi sotto-documenti in membri attribuiscono documento cluster, abbinando tweetID.
Tuttavia, non sono in grado di trovare una query per ottenere questo effetto. Fondamentalmente, un tweetID parteciperà a molti cluster e quindi apparirà in più sotto-documenti dell'attributo 'membri' di vari cluster. Voglio fornire un'operazione bulk $ pull, in cui posso rimuovere tutti i documenti secondari in tutti i cluster (vale a dire l'attributo dei membri) che corrispondono a un particolare tweetID.
Alcuni aiuti e intuizioni saranno davvero utili.
errore di ricezione. 'Impossibile applicare $ pull/$ pullAll modificatore a non-array' – VaidAbhishek
@VaidAbhishek Ciò significa che nella raccolta sono presenti alcuni documenti in cui' members' non è una matrice. – JohnnyHK
Non penso che sia il caso della mia collezione. i membri saranno un attributo di tipo strettamente array del cluster. C'è un modo per farlo usando l'aggregazione! – VaidAbhishek