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 toma un parámetro db.dropDatabase() opcional:
Campo | Descripción | |
|---|---|---|
writeConcern | Opcional. Un documento que expresa la preocupación de escritura a utilizar si es mayor Omitir el uso de la preocupación de escritura mínima/predeterminada Al ejecutarse en un conjunto de réplicas, si la solicitud de escritura especificada genera menos confirmaciones de miembro que la solicitud de 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 solo toma un bloqueo de base de datos exclusivo (X).
Gestión de usuarios
Este comando no elimina los usuarios asociados a la base de datos actual. Para eliminarlos, ejecute el comando en la base de datos que va a dropAllUsersFromDatabase eliminar.
Indexes
El db.dropDatabase() método y dropDatabase el comando cancelan cualquier compilación de índice en curso en colecciones de la base de datos de destino antes de eliminar la base de datos. Cancelar la compilación de un índice tiene el mismo efecto que eliminar el índice creado.
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.
Conjunto de réplicas y clústeres fragmentados
- Sets de réplicas
Como mínimo, espera hasta que todas las colecciones en la base de datos se hayan propagado
db.dropDatabase()"majority"a la mayoría de los miembros del conjunto de réplicas (es decir, utiliza la preocupación de escritura).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 especifica una inquietud de escritura que requiere el reconocimiento de más de la mayoría, el método utiliza la inquietud de escritura especificada.
- 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 del fragmento principal de la nueva base de datos. De lo contrario, podría perder datos durante las lecturas y no escribirlos en el fragmento correcto. Para recuperarlos, deberá 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 db.dropDatabase() método y dropDatabase el comando crean un evento de invalidación para cualquier flujo de cambio 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()