Delete Data from MongoDB¶
Author: MongoDB Documentation Team
In this guide, you will delete documents from a MongoDB database.
Time required: 10 minutes
What You’ll Need¶
- If you have not already installed a client (e.g. a driver, MongoDB Compass, or the
mongo
shell), complete the Connect to MongoDB guide before attempting this guide.
- If you have not already installed a client (e.g. a driver, MongoDB Compass, or the
mongo
shell), complete the Connect to MongoDB guide before attempting this guide. - Enable Auth on your local instance of MongoDB.
Warning
If you are running MongoDB locally and have not enabled authentication, your MongoDB instance is not secure.
- If you have not already installed a client (e.g. a driver, MongoDB Compass, or the
Complete the Import Data into MongoDB guide so that there is data in your database to delete.
Check Your Environment¶
You will need to ensure that your MongoDB instance is running and accessible.
Check that you have an Atlas account and have deployed a MongoDB database cluster. See Get Started with Atlas for information on how to login and create a cluster in Atlas.
- Windows
- macOS
- Linux
To make sure that your MongoDB instance is running on Windows, run the following command from the Windows command prompt:
If a mongod.exe
instance is running, you will
see something like:
To make sure your MongoDB instance is running on Mac, run the following command from your terminal:
If a mongod
instance is running, you will see
something like:
To make sure your MongoDB instance is running on Linux, run the following command from your terminal:
If a mongod
instance is running, you will see
something like:
Procedure¶
Connect to your MongoDB instance.¶
- Mongo Shell
- Compass
- Python
- Java (Sync)
- Node.js
- Other
Select the operating system platform on which you are running the MongoDB client you have selected.
- Windows
- macOS
- Linux
Pass the URI to the mongo shell followed by the --password
option. You will then be prompted for your password.
Pass the URI to the mongo shell followed by the --password
option. You will then be prompted for your password.
Pass the URI to the mongo shell followed by the --password
option. You will then be prompted for your password.
If you wish to manually configure your Compass connection, load
Compass and select the New Connection
link. You will see a
form where you can enter connection information for MongoDB.
Atlas users can copy a URI string from the Atlas console into Compass. MongoDB Compass can detect whether you have a MongoDB URI connection string in your system clipboard and auto- populate the connection dialog from the URI.
See Set Up Atlas Connectivity for information on how to get the Atlas connection string URI into your copy buffer.
If Compass was already running when you copied the URI string, click the NEW CONNECTION button.

You will be prompted to populate the connection dialog. Click Yes.
You should then populate the password field with the proper password for your MongoDB user in the connection form.
Note
Errors related to connecting through Compass will appear in red at the top of the Connect screen.
It’s a good idea to put your connection code in a class so that it can be reused.
If your connection_string
starts with mongodb+srv, you need to install the dnspython module with
Now add code to call the class you just created.
For the MongoDB java driver 3.7 and beyond, use the MongoClients.create()
method.
For legacy drivers (prior to 3.7), use:
The MongoDB.Bson
package is used in CRUD operations, so
you’ll import it here.
Replace your password and any parameters surrounded by $[]
in the connection string in the code below.
For now, you will use the context.TODO().
Later you’ll configure the context specific to your requirements.
You won’t know if the connection has been successful until you
use the connection. A ping is one way you can test the
connection. This is a full example of a Go connection to
mongoDB, including a test ping
.
In your Go workspace and project folder, run build.
Now run the binary. For binaries that are not installed, you’ll have to specify the path.
If you’d like to run the resulting binary without specifying a path, install the binary you just built into your Go workspace.
Now run the code. “yourprojectname” is the name of the project
directory that contains the file with your main()
function.
For installed binaries use:
For binaries that are not installed, you’ll have to specify the path.
The default timeout for the Go driver to connect to the database is 30 seconds. In the event that you are unable to connect, you will see an error that resembles this:
Switch to the test
database.¶
In this guide, you will delete documents in a collection in the
test
database.
- Mongo Shell
- Compass
- Python
- Java (Sync)
- Node.js
- Other
To switch to the test
database in the mongo
shell, type
If the database has not been created already, click the Create Database button.

Select the test
database on the left side of the Compass
interface. Compass will list all of the collections in the
database below the database name.

To access the test
database:
Switch to the test
database and
access the inventory
collection.
Within the connect block, set db
to the test
database.
To access the test
database:
Switch to the test
database and
access the inventory
collection.
To access the test
database:
Delete a single document.¶
The following operation deletes the first document with status
equal to D
:
- Mongo Shell
- Compass
- Python
- Java (Sync)
- Node.js
- Other
Copy the following filter into the Compass query bar and click Find:
Click the delete icon on the first document:
The document will be “Flagged for Deletion”, click Delete to confirm.
For completeness, the following example shows how you might wrap the delete one operation with the asyncio event loop:
Before deleting the data, you’ll need to assign the inventory
collection in the test
database to a variable:
Followed by:
- Mongo Shell
- Python
- Java (Sync)
- Node.js
- Motor
- Other
The operation returns a document that contains the status of the operation:
The operation returns an instance of
pymongo.results.DeleteResult
with the status of the
operation.
The operation returns an instance of com.mongodb.client.result.DeleteResult with the status of the operation.
The operation returns a
promise that provides a result
. The result.deletedCount
property contains the number of documents that matched the
filter.
The operations asynchronously return instances of
pymongo.results.DeleteResult
with the status of the
operation.
The operation returns an instance of
DeleteResult whose
DeletedCount
property contains the number of documents
that matched the filter.
Delete multiple documents.¶
The following operation deletes all of the documents in the
specified inventory
collection with status
equal to A
:
- Mongo Shell
- Compass
- Python
- Java (Sync)
- Node.js
- Other
Note
Deleting multiple documents in Compass is a manual
process. If you need to delete many documents, consider using
the mongo
shell or a driver.
Copy the following filter into the Compass query bar and click Find:
For each document, click the delete icon:
The document will be “Flagged for Deletion”, click Delete to confirm.
For completeness, the following example shows how you might wrap the delete many operation with the asyncio event loop:
Run the loop to execute both the delete_one
and delete_many
operations:
- Mongo Shell
- Python
- Java (Sync)
- Node.js
- Motor
- Other
The operation returns a document that contains the status of the operation:
The operation returns an instance of
pymongo.results.DeleteResult
with the status of the
operation.
The operation returns an instance of com.mongodb.client.result.DeleteResult with the status of the operation.
The operation returns a
promise that provides a result
. The result.deletedCount
property contains the number of documents that matched the
filter.
The operations asynchronously return instances of
pymongo.results.DeleteResult
with the status of the
operation.
The operation returns an instance of
DeleteResult whose
DeletedCount
property contains the number of documents
that matched the filter.
- Python
- Java (Sync)
- Motor
When you are done working with your MongoDB data, close your connection to MongoDB:
Summary¶
If you have successfully completed this guide, you have deleted documents from MongoDB. That completes this introduction to CRUD operations in MongoDB.
See Also¶
For other CRUD guides:
- Insert Data into MongoDB
- Read Data from MongoDB
- Read Data from MongoDB With Queries
- Read Data using Operators and Compound Queries
- Update Data in MongoDB
For method reference: