MongoDB: ¿Cómo eliminar todos los registros de una colección en MongoDB Shell?

84

He intentado

db.users.remove(*)

Aunque devuelve un error, ¿cómo puedo borrar todos los registros?

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

Respuestas:

163

El argumento de remove()es un documento de filtro, por lo que pasar un documento vacío significa 'eliminar todo':

db.user.remove({})

Sin embargo, si que debe de eliminar todo lo que podría ser mejor dejar caer la colección. Aunque eso probablemente depende de si tiene índices definidos por el usuario en la colección, es decir, si el costo de preparar la colección después de descartarla supera la duración más larga de la remove()llamada frente a la drop()llamada.

Más detalles en los documentos .

glitch
fuente
removeahora está en desuso. usar db.user.deleteMany({})en su lugar
Mahdieh Shavandi
@MahdiehShavandi mirando los documentos del shell de Mongo no veo nada que diga que removeestá obsoleto ( docs.mongodb.com/manual/reference/method/db.collection.remove ). ¿Puede proporcionar un enlace o una cita en apoyo de esa afirmación?
glytching
Lo siento, será mejor que diga: va a quedar obsoleto en las versiones futuras. Simplemente registra este reclamo en la terminal.
Mahdieh Shavandi
31

Puede eliminar todos los documentos de una colección en MongoDB, puede usar lo siguiente:

db.users.remove({})

Alternativamente, también puede usar el siguiente método:

db.users.deleteMany({})

Siga la siguiente documentación de MongoDB para obtener más detalles.

Para eliminar todos los documentos de una colección, aprobar un documento de filtro vacío {}ya sea a la db.collection.deleteMany()o el db.collection.remove()método.

Programador N00b
fuente
3
db.users.count()
db.users.remove({})
db.users.count()
Omkesh Sajjanwar
fuente
3

Para eliminar todos los documentos de todas las colecciones:

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
fuente
2

Elimine todos los documentos de una colección en cmd:

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