sql >> Database teknologi >  >> NoSQL >> MongoDB

Sådan fjerner du et dokument inde i et array i mongodb ved hjælp af $pull

Du kan gøre det ved at bruge positionsoperatoren "$[]" :

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

men skemaet ser lidt mærkeligt ud, og efter opdateringen vil du have tomme arrays inde i arbejdsgange, hvis alle elementer blev slettet i underarrayet. For at rette de tomme underarrays skal du udføre en anden operation for at fjerne dem:

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


  1. Sådan bruger du MongoDB-aggregering til generelle formålssætoperationer (union, kryds, forskel)

  2. Hvorfor reagerer MongoDB ikke under en belastningstest?

  3. Mongoose - Kan ikke oprette mere end 4 felter ved at bruge `findOrCreate`

  4. Hvorfor Mongo forespørger efter null-filtre i FETCH efter at have udført IXSCAN