U hebt de volledige notatie niet nodig omdat de tijdelijke aanduiding al naar die positie in de array is verplaatst.
db.junk.update(
{ "commandes.voyagesSouscrits.idVoyage": "123" },
{$pull: { "commandes.$.voyagesSouscrits": { idVoyage: "123" } }}
)
Dit deel:
idVoyage: { <query> }
is alleen nodig omdat de positionele operator in "commandes.$.voyagesSouscrits " kan alleen overeenkomen met de eerste matrixpositie gevonden in de zoekopdracht.
http://docs.mongodb.org/manual/reference/operator/projection/positional/
Ik hoop dat dat het opheldert.