Du behøver ikke den fulde notation, da pladsholderen allerede er flyttet til den position i arrayet.
db.junk.update(
{ "commandes.voyagesSouscrits.idVoyage": "123" },
{$pull: { "commandes.$.voyagesSouscrits": { idVoyage: "123" } }}
)
Denne del:
idVoyage: { <query> }
er kun nødvendig, fordi positionsoperatoren i "commandes.$.voyagesSouscrits " kan kun matche den første matrixposition fundet i forespørgslen.
http://docs.mongodb.org/manual/reference/operator/projection/positional/
Håber det opklarer det.