MongoDB-Dokumente löschen

In den vorherigen Kapiteln haben wir gelernt, wie man Daten zu MongoDB-Sammlungen hinzufügt und Daten in MongoDB-Sammlungen aktualisiert. In diesem Kapitel lernen wir weiter, wie man MongoDB-Sammlungen löscht.

Zu den gängigen Methoden zum Löschen von Dokumenten gehören deleteOne(), deleteMany() und findOneAndDelete().

Anwendungsfälle:

  • Datenbereinigung: Alte Daten oder ungültige Daten löschen, die nicht mehr benötigt werden.
  • Datenkorrektur: Fehlerhafte oder doppelte Dokumente während der Datenkorrektur löschen.
  • Automatisierte Aufgaben: Dokumente basierend auf bestimmten Bedingungen in automatisierten Skripten oder Aufgaben löschen.

1、deleteOne()

Die Methode deleteOne() wird verwendet, um ein einzelnes Dokument zu löschen, das dem Filter entspricht.

Syntax:

db.collection.deleteOne(filter, options)
  • filter: Die Abfragekriterien, die verwendet werden, um das zu löschende Dokument zu finden.
  • options: (Optional) Ein optionales Parameterobjekt.

Beispiel

db.myCollection.deleteOne({ name: "Alice" });

Zurückgegebenes Ergebnis:

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

2、deleteMany()

Die Methode deleteMany() wird verwendet, um alle Dokumente zu löschen, die dem Filter entsprechen.

Syntax:

db.collection.deleteMany(filter, options)
  • filter: Die Abfragekriterien, die verwendet werden, um die zu löschenden Dokumente zu finden.
  • options: (Optional) Ein optionales Parameterobjekt.

Beispiel

db.myCollection.deleteMany({ status: "inactive" });

Zurückgegebenes Ergebnis:

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

3、findOneAndDelete()

Die Methode findOneAndDelete() wird verwendet, um ein einzelnes Dokument zu finden und zu löschen, und kann optional das gelöschte Dokument zurückgeben.

Syntax:

db.collection.findOneAndDelete(filter, options)
  • filter: Die Abfragekriterien, die verwendet werden, um das zu löschende Dokument zu finden.
  • options: Optionales Parameterobjekt, wie z. B.projection、sortusw.

Beispiel

db.myCollection.findOneAndDelete(
    { name: "Charlie" },
    { projection: { name: 1, age: 1 } }
);

findOneAndDelete gibt das gelöschte Dokument zurück; wenn kein passendes Dokument gefunden wird, wird null zurückgegeben.

Optionen für Löschvorgänge

Der options-Parameter dieser Löschmethoden kann normalerweise die folgenden Optionen enthalten:

  • writeConcern: Gibt die Bestätigungsstufe für den Schreibvorgang an.
  • collation: Gibt die Kollation an, die beim Vergleich von Zeichenfolgen verwendet werden soll.
  • projection(Nur anwendbar auffindOneAndDelete): Gibt die Felder an, die zurückgegeben werden sollen.
  • sort(Nur anwendbar auffindOneAndDelete): Gibt die Sortierreihenfolge an, um zu bestimmen, welches Dokument gelöscht wird.

Beispiel

Ein einzelnes Dokument löschen:

db.myCollection.deleteOne({ name: "Alice" });

Mehrere Dokumente löschen:

db.myCollection.deleteMany({ status: "inactive" });

Ein einzelnes Dokument suchen und löschen:

db.myCollection.findOneAndDelete(
    { name: "Charlie" },
    { projection: { name: 1, age: 1 } }
);
Weitere Erweiterungen