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.
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.