Unterschied zwischen deleteMany() und Remove() in MongoDB
deleteMany()
und remove()
werden beide zum Löschen von Einträgen aus MongoDB verwendet. In der aktuellen Version ist remove
als veraltet gekennzeichnet.
Vielmehr schlägt MongoDB die Verwendung von deleteMany
und deleteOne
vor. Der Befehl deleteMany
kann einen Parameter akzeptieren, der vor dem Löschen abgeglichen werden soll.
Parameter und Rückgaben von deleteMany()
in MongoDB
Diese Methode stammt vom Mongosh. Im Allgemeinen wird es in der Sammlung verwendet, um die Dokumente in einer bestimmten Sammlung zu löschen.
So wird es verwendet.
db.collection.deleteMany(
<FILTER>,{
writeConcern: <document>,
collation: <document>
}
)
Der <FILTER>
bedeutet, dass wir unser benutzerdefiniertes Suchfeld verwenden können. Angenommen, wir möchten alle Produkte löschen, deren Preis 30
entspricht.
Dann lautet der Code:
db.collection.deleteMany({
price:30
})
Wir können den anderen Parameter hier leer setzen. Wenn Sie die gesamte Sammlung löschen möchten, fügen Sie {}
in deleteMany
ein.
Hier erfahren Sie mehr über writeConcern
und collation
.
Parameter | Typ | Beschreibung |
---|---|---|
writeConcern |
Dokumentieren | Es ist ein optionaler Parameter. Es setzt eine Bestätigung für das Dokument. Um mehr über writeConcern zu erfahren, besuchen Sie diesen Blog. |
collation |
Dokumentieren | Es ermöglicht dem Benutzer, sprachspezifische Regeln für das Dokument zu verwenden. Die Sortierung ist ein optionaler Parameter. Wenn Sie es verwenden, müssen Sie das Feld lokal verwenden. Hier ist mehr über die collation . |
deleteMany()
gibt acknowledged
als true
zurück, wenn die Funktion mit dem Parameter writeConcern
ausgeführt wird; ansonsten false
. Sie gibt auch den deleteCount
zurück, der sich darauf bezieht, wie viele Dokumente gelöscht wurden.
deleteMany
löscht alle Dokumente, die dem Filter entsprechen.
Eine Musterrückgabe kann wie folgt aussehen.
{ "acknowledged" : true, "deletedCount" : 9 }
Parameter und Rückgaben von remove()
in MongoDB
Die remove()
-Methode hat zwei Funktionalitäten. Es kann auch als deleteMany
und deleteOne
fungieren.
Der Vorlagencode für remove()
ist hier.
db.collection.remove(
<query>,
<justOne>
)
Im Allgemeinen werden diese beiden Parameter verwendet. Sie können dies auch auf Folgendes erweitern.
db.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>,
collation: <document>
}
)
writeConcern
und collation
sind dieselben, die wir oben für deleteMany()
besprochen haben. Hier können wir anstelle eines Filters die query
verwenden.
Um mehr über die query
in MongoDB zu erfahren, können Sie den folgenden Link besuchen.
Wenn wir in der Methode remove
ein leeres Objekt übergeben, werden alle Dokumente aus der Sammlung entfernt. Angenommen, Sie haben eine Product
-Sammlung und möchten alle Produkte mit einem Preis unter 5 entfernen.
Dann lautet der Befehl:
db.products.remove(
{price:{ $lt: 5}}
)
Wenn wir diesen Befehl eingeben, ist der Parameter justOne
standardmäßig false
. Wenn Sie nun nur ein Element für dieselbe Abfrage löschen möchten, lautet der Befehl wie folgt.
db.products.remove(
{price:{ $lt: 5}}, true
)
Diese Methode gibt ein Objekt namens WriteResult
zurück, das die folgenden Parameter hat.
WriteResult({ "nRemoved" : 10 })
Es hat auch writeError
und writeConcern
; diese beziehen sich auf writeConcern
oben.
Das remove()
ist in der neueren Version von MongoDB veraltet. Bei der Entwicklung der NodeJS-App sollten Sie also nur deleteOne
oder deleteMany
verwenden.
Um mehr über remove()
zu erfahren, besuchen Sie die folgenden Websites.