Wenn Sie in MongoDB ein Dokument in der Mongo-Shell löschen müssen, können Sie Folgendes verwenden:
- Der
db.collection.remove()
Methode - Das
delete
Befehl - Der
db.collection.deleteOne()
Methode - Der
db.collection.deleteMany()
Methode
Dieser Artikel enthält jeweils Beispiele.
Der db.collection.remove()
Methode
Die db.collection.remove()
-Methode entfernt (d. h. löscht) Dokumente aus einer Sammlung. Sie können je nach Bedarf alle Dokumente, einige Dokumente oder ein einzelnes Dokument löschen.
Hier ist ein Beispiel für das Löschen eines bestimmten Dokuments.
db.employees.remove({ "_id": 3 })
Ergebnis:
WriteResult({ "nRemoved" : 1 })
Das löscht das Dokument mit einer _id
Wert von 3
von den employees
Sammlung.
Es muss jedoch nicht mit einem einzelnen Dokument übereinstimmen. Die Filterkriterien können mit mehreren Dokumenten übereinstimmen, und Sie können die Filterkriterien sogar leer lassen, um mit allen Dokumenten übereinzustimmen (d. h. alle Dokumente zu löschen).
Hier ist ein Beispiel für das Löschen aller Dokumente:
db.employees.remove({})
Ergebnis:
WriteResult({ "nRemoved" : 5 })
Das Ergebnis zeigt uns, dass fünf Dokumente entfernt wurden (die Sammlung enthielt also offensichtlich fünf Dokumente, bevor wir sie alle gelöscht haben).
Das remove()
-Methode akzeptiert auch einen justOne
-Parameter, um das Entfernen auf nur ein Dokument zu beschränken. Dadurch wird das erste Dokument gelöscht, das den Löschkriterien entspricht.
Beispiel:
db.employees.remove({}, "justOne: true")
Ergebnis:
WriteResult({ "nRemoved" : 1 })
In diesem Fall ist unser Filterkriterium ein leeres Dokument und passt daher zu allen Dokumenten in der Sammlung. Allerdings wird nur ein Dokument gelöscht, da wir justOne: true
verwenden .
Das delete
Befehl
Das delete
Befehl macht genau dasselbe wie remove()
Methode. Tatsächlich ist das remove()
Methode verwendet den Löschbefehl.
Hier ist ein Beispiel für das Löschen eines bestimmten Dokuments mit delete
Befehl.
db.runCommand(
{
delete: "employees",
deletes: [ { q: { _id: 4 }, limit: 1 } ]
}
)
Ergebnis:
{ "n" : 1, "ok" : 1 }
Der db.collection.deleteOne()
Methode
Die db.collection.deleteOne()
Die Methode ähnelt der db.collection.remove()
-Methode, außer dass sie nur ein Dokument aus der angegebenen Sammlung löscht.
Es akzeptiert eine Filterbedingung, genau wie db.collection.remove()
.
Beispiel:
db.employees.deleteOne({ "_id": 4 })
Ergebnis:
{ "acknowledged" : true, "deletedCount" : 1 }
Dadurch wurde Mitarbeiter Nummer 4 gelöscht.
Wenn Sie einen umfassenderen Filter bereitstellen, der mehrere Dokumente zurückgibt, wird nur das erste gelöscht.
Folgendes löscht beispielsweise das erste Dokument in der Sammlung, unabhängig davon, wie viele Dokumente sich in der Sammlung befinden:
db.employees.deleteOne({})
Die db.collection.deleteOne()
kann eine praktische Methode sein, wenn Sie befürchten, versehentlich mehrere Dokumente zu löschen. Die meisten Dokumente, die gelöscht werden, sind eins. Wenn Sie also einen Fehler machen, werden Sie nicht versehentlich alle Dokumente aus der Sammlung entfernen (es sei denn, es gibt natürlich nur ein Dokument in der Sammlung).
Die db.collection.deleteMany()
Methode
Die db.collection.deleteMany()
-Methode ähnelt db.collection.deleteOne()
außer dass es mehrere Dokumente löschen kann.
Eigentlich ist es wahrscheinlich eher wie remove()
, da es mehrere Dokumente und ein einzelnes Dokument entfernen kann (obwohl es nicht die justOne
Parameter wie remove()
tut).
Diese Methode kann praktisch sein, wenn Sie alle Dokumente löschen möchten, die einem bestimmten Kriterium entsprechen.
Beispiel:
db.employees.deleteMany({ "salary": { $gt: 80000 } })
Ergebnis:
{ "acknowledged" : true, "deletedCount" : 2 }
Dadurch wurden alle Dokumente gelöscht, die ein salary
haben Feld über 80000. In diesem Fall stimmten nur zwei Dokumente überein, aber es hätte eine beliebige Zahl sein können.
Sie können auch db.collection.deleteMany()
verwenden um alle Dokumente aus der Sammlung zu löschen.
Beispiel:
db.employees.deleteMany({})
Ergebnis:
{ "acknowledged" : true, "deletedCount" : 5 }
In diesem Fall gab es fünf Dokumente in der Sammlung und alle fünf wurden gelöscht.
Weitere Informationen
Die obigen Methoden akzeptieren auch eine Reihe optionaler Argumente, wie z. B. writeConcern
und collation
.
deleteOne()
und deleteMany()
auch einen hint
akzeptieren Argument.
Nachfolgend finden Sie Links zur MongoDB-Dokumentation für jede Methode/jeden Befehl:
db.collection.remove()
delete
db.collection.deleteOne()
db.collection.deleteMany()