Du behöver inte hela notationen eftersom platshållaren redan har flyttats till den positionen i arrayen.
db.junk.update(
{ "commandes.voyagesSouscrits.idVoyage": "123" },
{$pull: { "commandes.$.voyagesSouscrits": { idVoyage: "123" } }}
)
Den här delen:
idVoyage: { <query> }
behövs bara eftersom positionsoperatorn i "commandes.$.voyagesSouscrits " kan bara matcha den första arrayposition hittas i frågan.
http://docs.mongodb.org/manual/reference/operator/projection/positional/
Hoppas det löser det.