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

MongoDB entfernen()

In MongoDB die db.collection.remove() -Methode entfernt Dokumente aus einer Sammlung. Mit anderen Worten, es löscht sie.

Die collection part ist der Name der Sammlung, aus der die Dokumente entfernt werden sollen.

Sie können je nach Bedarf alle Dokumente, einige Dokumente oder ein einzelnes Dokument löschen.

Alle Dokumente entfernen

In diesem Beispiel entfernen wir alle Dokumente aus einer Sammlung namens employees :

db.employees.remove({})

Ergebnis:

WriteResult({ "nRemoved" : 5 })

Das Ergebnis zeigt uns, dass fünf Dokumente entfernt wurden.

Ausgewählte Dokumente entfernen

In diesem Beispiel entfernen wir nur einige Dokumente.

Lassen Sie uns zunächst unsere Mitarbeitersammlung erneut füllen:

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 jetzt alle Mitarbeiter entfernen, die mehr als 80.000 pro Jahr verdienen.

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

Ergebnis:

WriteResult({ "nRemoved" : 2 })

Diesmal wurden nur zwei Dokumente entfernt.

Werfen wir einen Blick auf die Sammlung.

db.employees.find()

Ergebnis:

{ "_id" : 1, "name" : "Sandy", "salary" : 55000 }
{ "_id" : 3, "name" : "Fritz", "salary" : 25000 }
{ "_id" : 4, "name" : "Chris", "salary" : 45000 }

Wie erwartet haben die beiden Top-Verdiener das Unternehmen verlassen.

Ein Dokument entfernen

Es gibt mehrere Möglichkeiten, ein einzelnes Dokument aus einer Sammlung zu entfernen. Die Methode, die Sie verwenden, hängt davon ab, was Sie tun müssen.

Sie können entweder:

  • Ein bestimmtes Dokument entfernen
  • Verwenden Sie justOne Parameter

Ein bestimmtes Dokument entfernen

Wenn Sie ein bestimmtes Dokument entfernen müssen, können Sie die _id des Dokuments angeben Wert, um dieses bestimmte Dokument zu entfernen.

Wenn wir also beispielsweise Fritz aus der obigen Sammlung entfernen wollten, könnten wir seine _id angeben Wert von 3 . So:

db.employees.remove({ "_id": 3 })

Ergebnis:

WriteResult({ "nRemoved" : 1 })

Und lassen Sie uns die Sammlung noch einmal überprüfen:

db.employees.find()

Ergebnis:

{ "_id" : 1, "name" : "Sandy", "salary" : 55000 }
{ "_id" : 4, "name" : "Chris", "salary" : 45000 }

Wie erwartet ist Fritz nun verschwunden.

Verwenden Sie justOne Parameter

Alternativ können Sie auch den justOne verwenden -Parameter, um das Entfernen auf nur ein Dokument zu beschränken. Dadurch wird das erste Dokument gelöscht, das den Löschkriterien entspricht.

Um diesen Punkt so deutlich wie möglich zu demonstrieren, entfernen wir alle verbleibenden Dokumente aus der Sammlung und füllen sie dann erneut auf:

db.employees.remove({})
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 }
    ])

OK, wir wissen also, dass unsere Sammlung fünf Dokumente enthält.

Lassen Sie uns nun den justOne verwenden Parameter, um ein einzelnes Dokument zu entfernen.

db.employees.remove({}, "justOne: true")

Ergebnis:

WriteResult({ "nRemoved" : 1 })

Und lassen Sie uns die Sammlung überprüfen, um zu sehen, welches Dokument gelöscht wurde.

db.employees.find()

Ergebnis:

{ "_id" : 2, "name" : "Sarah", "salary" : 128000 }
{ "_id" : 3, "name" : "Fritz", "salary" : 25000 }
{ "_id" : 4, "name" : "Chris", "salary" : 45000 }
{ "_id" : 5, "name" : "Beck", "salary" : 82000 }

Wie erwartet wurde das erste Dokument gelöscht.

Der justOne Parameter hat auch eine andere Syntax. Sie können es auch innerhalb eines Dokuments verwenden. Sie müssen dies tun, wenn Sie der Methode andere Argumente übergeben möchten.

Hier ist ein Beispiel.

db.employees.remove(
    {}, 
    {
        justOne: true,
        writeConcern: { w: "majority", wtimeout: 3000 },
        collation: { locale: "de", strength: 1 }
    }
)

Ergebnis:

WriteResult({ "nRemoved" : 1 })

Und werfen wir einen weiteren Blick auf die Sammlung

db.employees.find()

Ergebnis:

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

Wie erwartet wurde das nächste Dokument gelöscht.

Weitere Informationen

Weitere Informationen finden Sie in der MongoDB-Dokumentation.