$pullAll
toán tử thực sự là một phím tắt "trường hợp đặc biệt" hoạt động trên các mảng chỉ có các giá trị trong đó, chẳng hạn như trường hợp thay thế của bạn.
Điều bạn thực sự muốn là $pull
và đối số của nó là một "truy vấn" cho các tài liệu có trong mảng. Vì vậy, danh sách của bạn sau đó trở thành đối số cho $in
:
db.bios.update(
{ "name.first": "James" },
{
"$pull": {
"awards": { "by": { "$in": ["Stockholm", "Hollywood"] } }
}
}
)
Vì vậy, trong ví dụ khác của bạn, một dạng dài hơn của $pullAll
sẽ là:
db.bios.update(
{ "name.first": "James" },
{
"$pull": { "contribs": { "$in": ["Java","UNIX"] } }
}
)
Điều tương tự nhưng chỉ là hình thức "tốc ký".