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 omdb.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
MulighedDu kan bruge
justOne
parameter for at begrænse fjernelsesoperationen til kun ét dokument (ligesom at brugedb.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.