In MongoDB können Sie Dokumente mit einer von drei Methoden löschen.
MongoDB bietet drei Methoden zum Löschen von Dokumenten:
db.collection.deleteOne()
db.collection.deleteMany()
db.collection.remove()
Der db.collection.deleteOne()
Methode
Die db.collection.deleteOne()
löscht nur ein Dokument, auch wenn mehr als ein Dokument den Kriterien entspricht.
Hier ist ein Beispiel für db.collection.deleteOne()
Methode zum Löschen eines einzelnen Dokuments.
Lassen Sie uns zuerst eine Abfrage ausführen, die mehrere Ergebnisse zurückgibt:
db.artists.find( { artistname: { $in: [ "The Kooks", "Gang of Four", "Bastille" ] } } )
Ergebnisse:
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014d"), "artistname" : "The Kooks" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014e"), "artistname" : "Bastille" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014f"), "artistname" : "Gang of Four" }
OK, wir wissen also, dass es drei Dokumente gibt, die diesen Kriterien entsprechen.
Lassen Sie uns nun genau dieselben Filterkriterien für unsere db.collection.deleteOne()
verwenden Methode:
db.artists.deleteOne( { artistname: { $in: [ "The Kooks", "Gang of Four", "Bastille" ] } } )
Ergebnismeldung:
{ "acknowledged" : true, "deletedCount" : 1 }
Es wurde also nur ein Dokument gelöscht, obwohl drei Dokumente den Kriterien entsprachen.
Lassen Sie uns find()
ausführen Abfrage erneut, um zu sehen, welche Dokumente verbleiben:
db.artists.find( { artistname: { $in: [ "The Kooks", "Gang of Four", "Bastille" ] } } )
Ergebnisse:
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014e"), "artistname" : "Bastille" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014f"), "artistname" : "Gang of Four" }
Die db.collection.deleteMany()
Methode
Die db.collection.deleteMany()
Methode löscht alle Dokumente, die den Kriterien entsprechen.
Lassen Sie uns also db.collection.deleteMany()
ausführen Methode mit genau den gleichen Kriterien wie in unserem vorherigen Beispiel. Denken Sie daran, dass zwei Aufzeichnungen verbleiben. Mal sehen, ob db.collection.deleteMany()
löscht beides:
db.artists.deleteMany( { artistname: { $in: [ "The Kooks", "Gang of Four", "Bastille" ] } } )
Ergebnismeldung:
{ "acknowledged" : true, "deletedCount" : 2 }
Also wurden die verbleibenden zwei Datensätze gelöscht.
Der db.collection.remove()
Methode
Die db.collection.remove()
Methode löscht ein einzelnes Dokument oder alle Dokumente, die den angegebenen Kriterien entsprechen.
Hier löschen wir alle Dokumente, bei denen der Künstlername "AC/DC" ist.
db.artists.remove( { artistname: "AC/DC" } )
Ergebnisse:
WriteResult({ "nRemoved" : 1 })
In diesem Fall gibt es nur einen AC/DC :)
Der justOne
Möglichkeit
Sie können den justOne
verwenden -Parameter, um den Löschvorgang auf nur ein Dokument zu beschränken (genau wie bei der Verwendung von db.collection.deleteOne()
).
Hier ist ein Beispiel.
Lassen Sie uns zuerst eine Abfrage ausführen, die mehrere Dokumente zurückgibt:
db.musicians.find( { born: { $lt: 1950 } } )
Ergebnisse:
{ "_id" : 2, "name" : "Ian Paice", "instrument" : "Drums", "born" : 1948 } { "_id" : 3, "name" : "Roger Glover", "instrument" : "Bass", "born" : 1945 } { "_id" : 5, "name" : "Don Airey", "instrument" : "Keyboards", "born" : 1948 }
Jetzt löschen wir einen dieser Datensätze mit justOne
Möglichkeit. Auch hier verwenden wir genau dieselben Filterkriterien:
db.musicians.remove( { born: { $lt: 1950 } }, { justOne: 1 } )
Ergebnismeldung:
WriteResult({ "nRemoved" : 1 })
Lassen Sie uns nun dieselbe Abfrage ausführen, um zu sehen, welche Dokumente noch übrig sind:
db.musicians.find( { born: { $lt: 1950 } } )
Ergebnisse:
{ "_id" : 3, "name" : "Roger Glover", "instrument" : "Bass", "born" : 1945 } { "_id" : 5, "name" : "Don Airey", "instrument" : "Keyboards", "born" : 1948 }
Alle Dokumente in einer Sammlung löschen
Sie können alle Dokumente in einer Sammlung löschen, indem Sie einfach alle Filterkriterien weglassen.
Lassen Sie uns alle Dokumente in artists löschen Sammlung:
db.artists.remove( {} )
Ergebnismeldung:
WriteResult({ "nRemoved" : 8 })
Wenn Sie einen Fehler:Entfernen benötigt eine Abfrage erhalten überprüfen Sie, ob Sie die geschweiften Klammern nicht vergessen haben. Sie müssen diese trotzdem einschließen.