Definición
dropDatabaseLa
dropDatabaseEl comando descarta la base de datos actual, borrando los archivos de datos asociados.
Compatibilidad
Este comando 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 comando tiene la siguiente sintaxis:
db.runCommand( { dropDatabase: 1, writeConcern: <document>, comment: <any> } )
Campos de comandos
El comando toma los siguientes campos opcionales:
Campo | Descripción | |
|---|---|---|
| opcional. Un documento que exprese la nivel de confirmación de escritura (write concern) a utilizar si es mayor que Omita para usar el nivel de confirmación de escritura (write concern) predeterminado/mínimo de Cuando se emite en un set de réplicas, si el nivel de confirmación de escritura (write concern) especificado da como resultado un menor reconocimiento entre los nodos que el nivel de confirmación de escritura (write concern) Cuando se emite en un clúster fragmentado, MongoDB convierte la preocupación de escritura especificada Véase también Comportamiento. | |
| Opcional. Un comentario proporcionado por el usuario para adjuntar a este comando. Una vez configurado, este comentario aparece junto a los registros de este comando en las siguientes ubicaciones:
Un comentario puede ser de cualquier tipo BSON válido (string, objeto, arreglo, etc.). |
mongosh también proporciona el método db.dropDatabase() auxiliar.
Comportamiento
Bloqueos
La operación toma un bloqueo exclusivo (X) de la base de datos solamente.
Gestión de usuarios
Este comando no elimina a los usuarios asociados a la base de datos actual. Para descartar los usuarios asociados, ejecute el comando dropAllUsersFromDatabase en la base de datos que está borrando.
Indexes
El db.dropDatabase() método y el comando dropDatabase finalizan cualquier creación de índices en curso en las colecciones de la base de datos de destino antes de eliminar la base de datos. Abortar una creación de índices tiene el mismo efecto que eliminar la creación de un índice.
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 abort asociada. 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.
Set de réplicas y Clusters Fragmentados
- Sets de réplicas
Como mínimo,
dropDatabaseespera hasta que todos los descartes de colecciones en la base de datos se hayan propagado a la mayoría de los miembros del set de réplicas (es decir, utiliza el nivel de confirmación de escritura (write concern)"majority").Si se especifica un nivel de confirmación de escritura (write concern) que requiera reconocimiento de menos que la mayoría, el comando usa un nivel de confirmación de escritura (write concern)
"majority".Si se especifica un nivel de confirmación de escritura (write concern) que requiere la confirmación de más que la mayoría, el comando utilizará el nivel de confirmación de escritura (write concern) especificado.
- Clústeres fragmentados
Cuando se emite en un clúster fragmentado, MongoDB convierte la preocupación de escritura especificada
"majority"a.Si desea crear una nueva base de datos con el mismo nombre que la base de datos eliminada, debe ejecutar el comando
dropDatabaseenmongosun.Esto garantiza que todos los nodos del clúster actualicen su caché de metadatos, que incluye la ubicación de la partición primaria para la nueva base de datos. De lo contrario, podrías perder datos en las lecturas y no guardar los datos en la partición correcta. Para recuperar, debe intervenir manualmente.
A partir de MongoDB 5.0, el comando
dropDatabasey el métododb.dropDatabase()devuelven un error si intentas eliminar la base de datos admin o la base de datos de configuración desde unmongos.Advertencia
Eliminar la base de datos admin o la base de datos de configuración puede dejar el clúster en un estado inutilizable.
Flujos de cambio
El método db.dropDatabase() y dropDatabase crean un evento de invalidación para cualquier Change Streams abierto en la base de datos eliminada o abierto en las colecciones de la base de datos eliminada.
Ejemplo
El siguiente ejemplo en mongosh utiliza la operación use
<database> para cambiar la base de datos actual a la base de datos temp y luego utiliza el comando dropDatabase para descartar la base de datos temp:
use temp db.runCommand( { dropDatabase: 1 } )