db.collection.drop()
On this page
Definition
db.collection.drop(<options>)
Important
mongo Shell Method
This page documents a
mongo
method. This is not the documentation for database commands or language-specific drivers, such as Node.js. To use the database command, see thedrop
command.For MongoDB API drivers, refer to the language-specific MongoDB driver documentation.
Removes a collection or view from the database. The method also removes any indexes associated with the dropped collection. The method provides a wrapper around the
drop
command.Note
For a sharded cluster, if you use
db.collection.drop()
and then create a new collection with the same name, you must either:Flush the cached routing table on every
mongos
usingflushRouterConfig
.Use
db.collection.remove()
to remove the existing documents and reuse the collection. Use this approach to avoid flushing the cache.
Returns: true
when successfully drops a collection.false
when collection to drop does not exist.
Note
When run on a sharded cluster, db.collection.drop()
always returns true
.
Compatibility
You can use db.collection.drop()
for deployments hosted in the following
environments:
MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud
MongoDB Enterprise: The subscription-based, self-managed version of MongoDB
MongoDB Community: The source-available, free-to-use, and self-managed version of MongoDB
Syntax
The drop()
method has the following form:
db.collection.drop( { writeConcern: <document> } )
The drop()
method takes an
optional document with the following field:
Field | Description |
---|---|
writeConcern | Optional. A document expressing the write concern of the
When issued on a sharded cluster, |
Behavior
The
db.collection.drop()
method anddrop
command create an invalidate for any Change Streams opened on dropped collection.Starting in MongoDB 4.4, the
db.collection.drop()
method anddrop
command abort any in-progress index builds on the target collection before dropping the collection. Prior to MongoDB 4.4, attempting to drop a collection with in-progress index builds results in an error, and the collection is not dropped.For replica sets or shard replica sets, aborting an index on the primary does not simultaneously abort secondary index builds. MongoDB attempts to abort the in-progress builds for the specified indexes on the primary and if successful creates an associated
abort
oplog entry. Secondary members with replicated in-progress builds wait for a commit or abort oplog entry from the primary before either committing or aborting the index build.Dropping a collection deletes its associated zone/tag ranges.
Resource Locking
Changed in version 4.2.
db.collection.drop()
obtains an exclusive lock on the specified collection
for the duration of the operation. All subsequent operations on the
collection must wait until db.collection.drop()
releases the
lock.
Prior to MongoDB 4.2, db.collection.drop()
obtained an exclusive
lock on the parent database, blocking all operations on the
database and all its collections until the operation completed.
Example
Drop a Collection Using Default Write Concern
The following operation drops the students
collection in the
current database.
db.students.drop()
Drop a Collection Using w: "majority"
Write Concern
db.collection.drop()
accepts an options document.
The following operation drops the students
collection in the
current database. The operation uses the "majority"
write concern:
db.students.drop( { writeConcern: { w: "majority" } } )