On this page
dropDatabase
On this page
Definition
dropDatabase
-
The
dropDatabase
command drops the current database, deleting the associated data files.The command has the following form:
{ dropDatabase: 1, writeConcern: <document>}
The command takes the following optional field:
Field Description writeConcern Optional. A document expressing the write concern of the drop
command. Omit to use the default write concern.The
mongo
shell also provides the helper methoddb.dropDatabase()
.
Behavior
Locks
Starting in versions 3.6, the operation takes an exclusive (X) database lock while dropping the collections in the database but a global lock when dropping the now-empty database.
User Management
Changed in version 2.6: This command does not delete the users associated with the current database. To drop the associated users, run the dropAllUsersFromDatabase
command in the database you are deleting.
Replica Set and Sharded Clusters
Changed in version 3.6: dropDatabase
waits until all collections drops in the database have propagated to a majority of the replica set members.
Warning
If you drop a database and create a new database with the same name, you must either restart all mongos
instances, or use the flushRouterConfig
command on all mongos
instances before reading or writing to that database. This action ensures that the mongos
instances refresh their metadata cache, including the location of the primary shard for the new database. Otherwise, the mongos
may miss data on reads and may write data to a wrong shard.
Example
The following example in the mongo
shell uses the use <database>
operation to switch the current database to the temp
database and then uses the dropDatabase
command to drop the temp
database:
use temp
db.runCommand( { dropDatabase: 1 } )
See also