Il tuo "secondArray" ha una struttura di elementi nidificati, quindi devi identificare l'elemento esterno che vuoi abbinare nella tua query quando usi un $
posizionale operatore nell'aggiornamento. Fondamentalmente hai bisogno di qualcosa del genere:
bulk.find({
"_id": new mongo.ObjectID(req.session._id),
"secondArray._id": "7423"
}).update({
"$pull": {
"firstArray": { "_id": "153" },
"secondArray.$.firstArrayIds": 153
}
});
Quindi ci sono in effetti "due" valori ID che devi trasmettere con la tua richiesta oltre all'ID documento generale. Anche se questo è nidificato, va bene poiché stai abbinando solo al livello "esterno" e solo su un array. Se hai provato a far corrispondere la posizione su più di un array, questo non è possibile con l'operatore posizionale.