MongoDB: Wie lösche ich alle Datensätze einer Sammlung in der MongoDB-Shell?

85

ich habe es versucht

db.users.remove(*)

Obwohl es einen Fehler zurückgibt, wie gehe ich vor, um alle Datensätze zu löschen?

AllJs
quelle
db.getCollection ('collectionname'). remove ({})
firstpostcommenter

Antworten:

164

Das Argument für remove()ist ein Filterdokument. Wenn Sie also ein leeres Dokument übergeben, bedeutet dies "Alle entfernen":

db.user.remove({})

Wenn Sie jedoch definitiv alles entfernen möchten, ist es möglicherweise besser, die Sammlung zu löschen. Dies hängt jedoch wahrscheinlich davon ab, ob Sie benutzerdefinierte Indizes für die Sammlung haben, dh ob die Kosten für die Vorbereitung der Sammlung nach dem Löschen die längere Dauer des remove()Anrufs gegenüber dem drop()Anruf überwiegen .

Weitere Details in den Dokumenten .

Glytchen
quelle
removeist jetzt veraltet. Verwenden Sie db.user.deleteMany({})stattdessen
Mahdieh Shavandi
@ MahdiehShavandi Beim Betrachten der Mongo-Shell-Dokumente kann ich nichts sagen, removewas veraltet ist ( docs.mongodb.com/manual/reference/method/db.collection.remove ). Können Sie einen Link oder ein Zitat zur Unterstützung dieser Behauptung bereitstellen?
Glytchen
Entschuldigung, ich sollte besser sagen: Es wird in zukünftigen Versionen veraltet sein. Diese Behauptung wird nur im Terminal protokolliert.
Mahdieh Shavandi
31

Sie können alle Dokumente aus einer Sammlung in MongoDB löschen. Sie können Folgendes verwenden:

db.users.remove({})

Alternativ können Sie auch die folgende Methode verwenden:

db.users.deleteMany({})

Weitere Informationen finden Sie in der folgenden MongoDB- Dokumentation .

Um alle Dokumente aus einer Sammlung zu entfernen, übergeben Sie ein leeres Filterdokument {}entweder an die db.collection.deleteMany()oder an die db.collection.remove()Methode.

N00b Pr0grammer
quelle
3
db.users.count()
db.users.remove({})
db.users.count()
Omkesh Sajjanwar
quelle
3

So entfernen Sie alle Dokumente in allen Sammlungen:

db.getCollectionNames().forEach( function(collection_name) { 
    if (collection_name.indexOf("system.") == -1) {
        print ( ["Removing: ", db[collection_name].count({}), " documents from ", collection_name].join('') );
        db[collection_name].remove({}); 
    }
});
KalenGi
quelle
2

Löschen Sie alle Dokumente aus einer Sammlung in cmd:

cd C:\Program Files\MongoDB\Server\4.2\bin
mongo
use yourdb
db.yourcollection.remove( { } )
akulich
quelle