sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB - Ta bort ett dokument

I MongoDB kan du ta bort dokument med en av tre metoder.

MongoDB tillhandahåller tre metoder för att ta bort dokument:

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

db.collection.deleteOne() Metod

db.collection.deleteOne() tar bara bort ett dokument, även om mer än ett dokument matchar kriterierna.

Här är ett exempel på db.collection.deleteOne() metod för att ta bort ett enskilt dokument.

Låt oss först köra en fråga som returnerar flera resultat:

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

Resultat:

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

OK, så vi vet att det finns tre dokument som matchar de kriterierna.

Låt oss nu använda exakt samma filtreringskriterier för vår db.collection.deleteOne() metod:

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

Resultatmeddelande:

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

Så bara ett dokument raderades, trots att tre dokument matchade kriterierna.

Låt oss köra find() fråga igen för att se vilka dokument som finns kvar:

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

Resultat:

{ "_id" :ObjectId("5781d7f248ef8c6b3ffb014e"), "artistname" :"Bastille" }{ "_id" :ObjectId("5781d7f248ef8c6b3ffb014f"), "artistnamn av fyra" :"Gang> av fyra" 

db.collection.deleteMany() Metod

db.collection.deleteMany() metod tar bort alla dokument som matchar kriterierna.

Så låt oss köra db.collection.deleteMany() metod med exakt samma kriterier som vårt tidigare exempel. Kom ihåg att två rekord återstår. Låt oss se om db.collection.deleteMany() tar bort båda:

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

Resultatmeddelande:

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

Så de återstående två posterna raderades.

db.collection.remove() Metod

db.collection.remove() metod tar bort ett enstaka dokument eller alla dokument som matchar de angivna kriterierna.

Här tar vi bort alla dokument där artistnamnet är "AC/DC".

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

Resultat:

WriteResult({ "nRemoved" :1 })

I det här fallet finns det bara en AC/DC :)

justOne Alternativ

Du kan använda justOne parameter för att begränsa borttagningen till bara ett dokument (precis som att använda db.collection.deleteOne() ).

Här är ett exempel.

Låt oss först köra en fråga som returnerar flera dokument:

db.musicians.find( { född:{ $lt:1950 } } )

Resultat:

{ "_id" :2, "name" :"Ian Paice", "instrument" :"Trummor", "född" :1948 }{ "_id" :3, "name" :"Roger Glover", " instrument" :"Bas", "född" :1945 }{ "_id" :5, "name" :"Don Airey", "instrument" :"Keyboards", "född" :1948 }

Nu tar vi bort en av dessa poster med justOne alternativ. Återigen kommer vi att använda exakt samma filtreringskriterier:

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

Resultatmeddelande:

WriteResult({ "nRemoved" :1 })

Låt oss nu köra samma fråga för att se vilka dokument som finns kvar:

db.musicians.find( { född:{ $lt:1950 } } )

Resultat:

{ "_id" :3, "name" :"Roger Glover", "instrument" :"Bass", "född" :1945 }{ "_id" :5, "name" :"Don Airey", " instrument" :"Keyboards", "född" :1948 }

Ta bort alla dokument i en samling

Du kan ta bort alla dokument i en samling helt enkelt genom att utelämna eventuella filtreringskriterier.

Låt oss ta bort alla dokument i artister samling:

db.artists.remove( {} )

Resultatmeddelande:

WriteResult({ "nRemoved" :8 })

Om du får ett Fel:ta bort behöver en fråga fel, kontrollera att du inte har glömt att inkludera de lockiga hängslen. Du måste fortfarande inkludera dessa.


  1. Dra och lägg till samtidigt med mongo

  2. Ring lagrad funktion i mongodb

  3. Hur man använder MongoDB-datamodellering för att förbättra genomströmningsoperationer

  4. MongoDB - Skillnad mellan index på textfält och textindex?