"SecondArray" của bạn có cấu trúc phần tử lồng nhau, vì vậy bạn phải xác định phần tử bên ngoài mà bạn muốn đối sánh trong truy vấn của mình khi sử dụng $
vị trí trong bản cập nhật. Về cơ bản bạn cần một cái gì đó như thế này:
bulk.find({
"_id": new mongo.ObjectID(req.session._id),
"secondArray._id": "7423"
}).update({
"$pull": {
"firstArray": { "_id": "153" },
"secondArray.$.firstArrayIds": 153
}
});
Vì vậy, trên thực tế, có "hai" giá trị id bạn cần chuyển vào với yêu cầu của mình ngoài id tài liệu chung. Mặc dù điều này được lồng vào nhau, nó không sao vì bạn chỉ khớp ở cấp độ "bên ngoài" và chỉ trên một mảng. Nếu bạn đã cố gắng so khớp vị trí trên nhiều mảng thì điều này không thể thực hiện được với toán tử vị trí.