Nie potrzebujesz pełnej notacji, ponieważ symbol zastępczy został już przeniesiony do tej pozycji w tablicy.
db.junk.update(
{ "commandes.voyagesSouscrits.idVoyage": "123" },
{$pull: { "commandes.$.voyagesSouscrits": { idVoyage: "123" } }}
)
Ta część:
idVoyage: { <query> }
jest potrzebny tylko dlatego, że operator pozycyjny w „commandes.$.voyagesSouscrits ” może pasować tylko do pierwszego pozycja tablicy znaleziona w zapytaniu.
http://docs.mongodb.org/manual/reference/operator/projection/positional/
Mam nadzieję, że to wyjaśni.