sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man tar bort ett dokument inuti en array i mongodb med $pull

Du kan göra det med positionsoperatorn "$[]" :

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

men schemat ser lite konstigt ut och efter uppdateringen kommer du att ha tomma arrayer i arbetsflöden om alla element har tagits bort i underarrayen. För att fixa de tomma underarrayerna måste du utföra en andra operation för att ta bort dem:

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


  1. Kör mongodb-skalskript via C#-drivrutinen

  2. Mongo ger dup-nyckelfel för fält med unikt:false

  3. geoNear returnerar felaktigt avstånd

  4. Mongodb:aggregerad array av heltal för varje arrayposition