MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoDB $ pull array niveau 2

Vous n'avez pas besoin de la notation complète car l'espace réservé s'est déjà déplacé vers cette position dans le tableau.

db.junk.update(
    { "commandes.voyagesSouscrits.idVoyage": "123" },
    {$pull: { "commandes.$.voyagesSouscrits": { idVoyage: "123" } }}
)

Cette partie :

idVoyage: { <query> }

n'est nécessaire que parce que l'opérateur positionnel dans "commandes.$.voyagesSouscrits " ne peut correspondre qu'au premier position du tableau trouvée dans la requête.

http://docs.mongodb.org/manual/reference/operator/projection/positional/

J'espère que cela clarifie.