$pullAll
operator jest w rzeczywistości skrótem "specjalnej wielkości liter", który działa na tablicach zawierających tylko wartości, takich jak alternatywny przypadek.
To, czego naprawdę chcesz, to $pull
a jego argumentem jest "zapytanie" o dokumenty zawarte w tablicy. Twoja lista staje się zatem argumentem dla $in
:
db.bios.update(
{ "name.first": "James" },
{
"$pull": {
"awards": { "by": { "$in": ["Stockholm", "Hollywood"] } }
}
}
)
W innym przykładzie dłuższa forma $pullAll
byłoby:
db.bios.update(
{ "name.first": "James" },
{
"$pull": { "contribs": { "$in": ["Java","UNIX"] } }
}
)
To samo, ale tylko forma „odręczna”.