Definición
db.collection.drop(<options>)MongoDB con controladores
Esta página es un documento sobre un método
mongosh. Para ver el método equivalente en un driver de MongoDB, se debe consultar la página correspondiente al lenguaje de programación:Elimina una colección o Vista de la base de datos. El método también elimina los índices asociados a la colección eliminada. El método proporciona una envoltura para el
dropcomando.Devuelve: truecuando se elimina una colección con éxito.falsecuando la colección a descartar no existe.
Nota
Cuando se ejecuta en un clúster fragmentado, db.collection.drop() siempre devuelve true.
Compatibilidad
Este método está disponible en implementaciones alojadas en los siguientes entornos:
MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube
Nota
Este comando es compatible con todos los clústeres de MongoDB Atlas. Para obtener información sobre el soporte de Atlas para todos los comandos, consulte Comandos no compatibles.
MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB
MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.
Sintaxis
El método drop() tiene la siguiente forma:
db.collection.drop( { writeConcern: <document> } )
El método drop() acepta un documento opcional con el siguiente campo:
Campo | Descripción |
|---|---|
writeConcern | Opcional. Un documento que expresa el nivel de confirmación de escritura de la operación Cuando se emite en un clúster particionado, |
Comportamiento
El método
db.collection.drop()y el comandodropcrean un evento de invalidación para cualquier Change Streams abierto en una colección descartada.El método
db.collection.drop()y el comandodropabortan cualquier creación de índices en progreso en la colección de destino antes de eliminar la colección.Para sets de réplicas o sets de réplicas de fragmentos, abortar un índice en el primario no anula simultáneamente las construcciones de índices secundarios. MongoDB intenta abortar las compilaciones en curso para los índices especificados en el primario y, si es exitoso, crea una entrada de oplog
abortasociada. Los miembros secundarios con compilaciones replicadas en progreso esperan una entrada de confirmación o anulación de oplog del primario antes de confirmar o anular la creación de índices.Al descartar una colección, se borran sus rangos de zona/etiqueta asociados.
A partir de MongoDB 5.0, el comando
dropy el métododb.collection.drop()devuelven un error si intentas descartar una colección en la base de datos admin o la base de datos de configuración desde unmongos. Para descartar estas colecciones, conéctate al servidor de configuración y ejecuta el comando allí.Advertencia
Eliminar colecciones en la base de datos admin o en la base de datos de configuración puede dejar su clúster en un estado inutilizable.
A partir de MongoDB 6.0, el método
db.collection.drop()descarta la colección especificada y cualquier colección interna relacionada con campos cifrados.Advertencia
El comportamiento del método
db.collection.drop()difiere del comportamiento del métododropdel controlador. La conexión del controlador debe tener el cifrado automático activado para descartar tanto la colección especificada como cualquier colección interna relacionada con los campos cifrados.mongoshsiempre descarta la colección especificada y cualquier colección interna relacionada con los campos cifrados.
Reutilización de nombres de colecciones descartadas en clústeres particionados
En un clúster particionado, si crea una colección que tiene el mismo nombre que una colección borrada previamente antes de MongoDB 5.0, mongos puede reenviar operaciones a la partición incorrecta. Para evitar esta situación, utilice las instrucciones específicas de la versión que se indican a continuación:
Para un clúster particionado que ejecuta MongoDB 5.0 o posterior, no se requiere ninguna acción especial. Utilice el método drop() y luego cree una nueva colección con el mismo nombre.
Para un clúster particionado, si utilizas el método drop() y luego creas una nueva colección con el mismo nombre, debes:
Vacíe la tabla de enrutamiento en caché en cada
mongosusandoflushRouterConfig.Utilice
db.collection.remove()para remover los documentos existentes y reutilizar la colección.
Vaciar las tablas de enrutamiento en caché es el procedimiento preferido porque es más rápido que remover colecciones particionadas con db.collection.remove(). Utilice solo el enfoque remove() si quiere evitar vaciar la caché.
Bloqueo de recursos
db.collection.drop() obtiene un bloqueo exclusivo en la colección especificada por el tiempo que dure la operación. Todas las operaciones posteriores en la colección deben esperar hasta que db.collection.drop() libere el bloqueo.
Ejemplo
Descartar una colección utilizando el nivel de confirmación de escritura (write concern) por defecto
La siguiente operación descarta la colección students en la base de datos actual.
db.students.drop()
Eliminar una colección usando w: 1 Escribir preocupación
db.collection.drop() acepta un documento de opciones.
La siguiente operación descarta la colección students en la base de datos actual. La operación utiliza el nivel de confirmación de escritura (write concern) de 1:
db.students.drop( { writeConcern: { w: 1 } } )