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

MongoDB - Slet et dokument

I MongoDB kan du slette dokumenter ved hjælp af en af ​​tre metoder.

MongoDB giver tre metoder til at slette dokumenter:

  • db.collection.deleteOne()
  • db.collection.deleteMany()
  • db.collection.remove()

db.collection.deleteOne() Metode

db.collection.deleteOne() sletter kun ét dokument, selvom mere end ét dokument matcher kriterierne.

Her er et eksempel på db.collection.deleteOne() metode til at slette et enkelt dokument.

Lad os først køre en forespørgsel, der returnerer flere resultater:

db.artists.find( { kunstnernavn:{ $in:[ "The Kooks", "Gang of Four", "Bastille" ] } )

Resultater:

{ "_id" :ObjectId("5781d7f248ef8c6b3ffb014d"), "artistname" :"The Kooks" }{ "_id" :ObjectId("5781d7f248ef8c6b3ffb014e"), "artistname" :"B_atistname" :"B_idstille ("5781d7f248ef8c6b3ffb014f"), "artistname" :"Gang of Four" }

OK, så vi ved, at der er tre dokumenter, der matcher disse kriterier.

Lad os nu bruge nøjagtig de samme filtreringskriterier for vores db.collection.deleteOne() metode:

db.artists.deleteOne( { kunstnernavn:{ $in:[ "The Kooks", "Gang of Four", "Bastille" ] } )

Resulterende besked:

{ "acknowledged" :true, "deletedCount" :1 }

Så kun ét dokument blev slettet, selvom tre dokumenter matchede kriterierne.

Lad os køre find() forespørg igen for at se, hvilke dokumenter der er tilbage:

db.artists.find( { kunstnernavn:{ $in:[ "The Kooks", "Gang of Four", "Bastille" ] } )

Resultater:

{ "_id" :ObjectId("5781d7f248ef8c6b3ffb014e"), "artistname" :"Bastille" }{ "_id" :ObjectId("5781d7f248ef8c6b3ffb014f"), "artistname of Four" :"Gang> 

db.collection.deleteMany() Metode

db.collection.deleteMany() metoden sletter alle dokumenter, der matcher kriterierne.

Så lad os køre db.collection.deleteMany() metode med nøjagtig samme kriterier som vores tidligere eksempel. Husk, at der er to rekorder tilbage. Lad os se om db.collection.deleteMany() sletter begge:

db.artists.deleteMany( { kunstnernavn:{ $in:[ "The Kooks", "Gang of Four", "Bastille" ] } )

Resulterende besked:

{ "acknowledged" :true, "deletedCount" :2 }

Så de resterende to poster blev slettet.

db.collection.remove() Metode

db.collection.remove() metoden sletter et enkelt dokument eller alle dokumenter, der matcher de angivne kriterier.

Her sletter vi alle dokumenter, hvor kunstnernavnet er "AC/DC".

db.artists.remove( { kunstnernavn:"AC/DC" } )

Resultater:

SkrivResultat({ "nFjernet":1 })

I dette tilfælde er der kun én AC/DC :)

justOne Mulighed

Du kan bruge justOne parameter for at begrænse fjernelsesoperationen til kun ét dokument (ligesom at bruge db.collection.deleteOne() ).

Her er et eksempel.

Lad os først køre en forespørgsel, der returnerer flere dokumenter:

db.musicians.find( { født:{ $lt:1950 } } )

Resultater:

{ "_id" :2, "name" :"Ian Paice", "instrument" :"Trommer", "født" :1948 }{ "_id" :3, "name" :"Roger Glover", " instrument" :"Bas", "født" :1945 }{ "_id" :5, "name" :"Don Airey", "instrument" :"Keyboards", "født" :1948 }

Nu sletter vi en af ​​disse poster ved hjælp af justOne mulighed. Igen bruger vi nøjagtig de samme filtreringskriterier:

db.musicians.remove( { født:{ $lt:1950 } }, { justOne:1 } )

Resulterende besked:

SkrivResultat({ "nFjernet":1 })

Lad os nu køre den samme forespørgsel for at se, hvilke dokumenter der er tilbage:

db.musicians.find( { født:{ $lt:1950 } } )

Resultater:

{ "_id" :3, "name" :"Roger Glover", "instrument" :"Bas", "født" :1945 }{ "_id" :5, "name" :"Don Airey", " instrument" :"Keyboards", "født" :1948 }

Slet alle dokumenter i en samling

Du kan slette alle dokumenter i en samling blot ved at udelade eventuelle filtreringskriterier.

Lad os slette alle dokumenter i kunstnere samling:

db.artists.remove( {} )

Resulterende besked:

Skriv Resultat({ "nFjernet" :8 })

Hvis du modtager en Fejl:Fjern kræver en forespørgsel fejl, tjek at du ikke har glemt at inkludere de krøllede seler. Du skal stadig medtage disse.


  1. Oprettelse af testdata til MongoDB

  2. Docker [Errno 111] Forbind opkald mislykkedes ('127.0.0.1', 6379)

  3. Hvordan bruger StackExchange.Redis flere endepunkter og forbindelser?

  4. Mongodb samlet sortering og begrænsning inden for gruppen