$pullAll
Operátor je ve skutečnosti zkratka "speciálního případu", která funguje na polích s pouze hodnotami v nich, jako je váš alternativní případ.
To, co opravdu chcete, je $pull
a jeho argument je "dotaz" na dokumenty obsažené v poli. Váš seznam se tedy stane argumentem pro $in
:
db.bios.update(
{ "name.first": "James" },
{
"$pull": {
"awards": { "by": { "$in": ["Stockholm", "Hollywood"] } }
}
}
)
Takže ve vašem dalším příkladu delší tvar $pullAll
by bylo:
db.bios.update(
{ "name.first": "James" },
{
"$pull": { "contribs": { "$in": ["Java","UNIX"] } }
}
)
Totéž, ale jen „dlouhoučká“ forma.