$pullAll
operator sebenarnya adalah pintasan "kasus khusus" yang bekerja pada array dengan nilai saja di dalamnya, seperti kasus alternatif Anda.
Yang Anda inginkan adalah $pull
dan argumennya adalah "permintaan" untuk dokumen yang terkandung dalam array. Jadi daftar Anda kemudian menjadi argumen untuk $in
:
db.bios.update(
{ "name.first": "James" },
{
"$pull": {
"awards": { "by": { "$in": ["Stockholm", "Hollywood"] } }
}
}
)
Jadi dalam contoh Anda yang lain, bentuk $pullAll
yang lebih panjang akan menjadi:
db.bios.update(
{ "name.first": "James" },
{
"$pull": { "contribs": { "$in": ["Java","UNIX"] } }
}
)
Hal yang sama tetapi hanya bentuk "tulisan tangan".