MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB deleteOne()

In MongoDB die db.collection.deleteOne() -Methode entfernt ein einzelnes Dokument aus einer Sammlung. Mit anderen Worten, es wird gelöscht.

Die collection part ist der Name der Sammlung, aus der das Dokument entfernt werden soll.

Beispiel

Lassen Sie uns eine Sammlung namens employees füllen mit fünf Dokumenten:

db.employees.insertMany([
    { _id: 1, name: "Sandy", salary: 55000 },
    { _id: 2, name: "Sarah", salary: 128000 },
    { _id: 3, name: "Fritz", salary: 25000 },
    { _id: 4, name: "Chris", salary: 45000 },
    { _id: 5, name: "Beck", salary: 82000 }
    ])

Lassen Sie uns nun db.collection.deleteOne() verwenden um eines dieser Dokumente zu löschen.

db.employees.deleteOne({ "_id": 4 })

Ergebnis:

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

Dadurch wurde Mitarbeiter Nummer 4 gelöscht.

Sehen wir uns die zu überprüfende Sammlung an.

db.employees.find()

Ergebnis:

{ "_id" : 1, "name" : "Sandy", "salary" : 55000 }
{ "_id" : 2, "name" : "Sarah", "salary" : 128000 }
{ "_id" : 3, "name" : "Fritz", "salary" : 25000 }
{ "_id" : 5, "name" : "Beck", "salary" : 82000 }

Wir können sehen, dass Mitarbeiter Nummer 4 nicht mehr in der Sammlung vorhanden ist.

Eine breitere Bedingung verwenden

Im vorherigen Beispiel haben wir die _id verwendet Feld des Mitarbeiters, den wir löschen wollten. Da die _id Feld ist die eindeutige Kennung für jedes Dokument, dies ermöglichte uns, genau das Dokument zu löschen, das wir löschen wollten.

Es ist auch möglich, ein einzelnes Dokument zu löschen, ohne so genau zu sein, welches gelöscht wird. Sie können beispielsweise einen breiten Filter verwenden, der viele Dokumente zurückgibt, aber nur das erste Dokument aus diesen Ergebnissen löschen.

Beispielsweise könnten wir nach Mitarbeitern filtern, die mehr als 80.000 pro Jahr verdienen, und dann das erste Dokument in dieser Gruppe löschen.

db.employees.deleteOne({ "salary": { $gt: 80000 } })

Ergebnis:

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

In diesem Beispiel wurde nur ein Dokument gelöscht, obwohl es zwei Dokumente gab, die den Kriterien entsprachen.

Wir können uns die Sammlung ansehen, um zu sehen, welche gelöscht wurde.

db.employees.find()

Ergebnis:

{ "_id" : 1, "name" : "Sandy", "salary" : 55000 }
{ "_id" : 3, "name" : "Fritz", "salary" : 25000 }
{ "_id" : 5, "name" : "Beck", "salary" : 82000 }

Wir können sogar noch einen Schritt weiter gehen und alle Filter entfernen, was bedeutet, dass es aus allen Dokumenten in der Sammlung auswählt.

db.employees.deleteOne({})

Ergebnis:

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

Noch einmal können wir die Sammlung überprüfen, um zu sehen, welche gelöscht wurde.

db.employees.find()

Ergebnis:

{ "_id" : 3, "name" : "Fritz", "salary" : 25000 }
{ "_id" : 5, "name" : "Beck", "salary" : 82000 }

Wie erwartet wurde das erste Dokument gelöscht.

Weitere Informationen

Die db.collection.deleteOne() -Methode akzeptiert auch optionale Parameter wie collation , hint und writeConcern .

Weitere Informationen finden Sie in der MongoDB-Dokumentation.