Definición
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 db.dropDatabase() acepta un parámetro opcional:
Campo | Descripción | |
|---|---|---|
writeConcern | opcional. Un documento que exprese el 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. |
Comportamiento
El db.dropDatabase() envuelve el dropDatabase comando.
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 método db.dropDatabase() y el comando dropDatabase abortan todas las creaciones 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 el índice compilado.
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,
db.dropDatabase()esperan hasta que todos los descartes de colección en la base de datos se hayan propagado a la mayoría de los miembros del set de réplicas (es decir, usa el nivel de confirmación de escritura (write concern)"majority").Puede especificar una solicitud de escritura para el método. Si especifica una solicitud de escritura que requiere confirmación de menos de la mayoría, el método utiliza la solicitud de
"majority"escritura.Si especificas un nivel de confirmación de escritura (write concern) que requiere el reconocimiento de más que la mayoría, el método utiliza 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 tienes la intención de crear una nueva base de datos con el mismo nombre que la base de datos descartada, debes ejecutar el comando
dropDatabaseen unmongos.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 descartar la base de datos admin o la base de datos de configuración de 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 el comando 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, a continuación, utiliza el método db.dropDatabase() para descartar la base de datos temp:
use temp db.dropDatabase()