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

Comment supprimer un document à l'intérieur d'un tableau dans mongodb en utilisant $pull

Vous pouvez le faire en utilisant l'opérateur positionnel "$[]" :

db.getCollection('workflows').update({_id: ObjectId("5ffef283f1f06ff8524aa2c2")  }, {$pull: {"workflows.$[]":{pName:"Test1"  } }  } )

mais le schéma semble un peu étrange et après la mise à jour, vous aurez des tableaux vides dans les flux de travail si tous les éléments ont été supprimés dans le sous-tableau. Pour réparer les sous-tableaux vides, vous devrez effectuer une deuxième opération pour les supprimer :

db.getCollection('workflows').update({_id: ObjectId("5ffef283f1f06ff8524aa2c2")  }, {$pull: {"workflows":[]  } }   )