Twoja „secondArray” ma zagnieżdżoną strukturę elementów, więc musisz zidentyfikować zewnętrzny element, który chcesz dopasować w zapytaniu, używając pozycyjnego $
operatora w aktualizacji. Zasadniczo potrzebujesz czegoś takiego:
bulk.find({
"_id": new mongo.ObjectID(req.session._id),
"secondArray._id": "7423"
}).update({
"$pull": {
"firstArray": { "_id": "153" },
"secondArray.$.firstArrayIds": 153
}
});
Tak więc w rzeczywistości istnieją „dwie” wartości identyfikatora, które musisz przekazać wraz z żądaniem oprócz ogólnego identyfikatora dokumentu. Nawet jeśli jest to zagnieżdżone, jest to w porządku, ponieważ dopasowujesz tylko na poziomie „zewnętrznym” i tylko na jednej tablicy. Jeśli próbowałeś dopasować pozycję w więcej niż jednej tablicy, nie jest to możliwe przy użyciu operatora pozycyjnego.