Open In App

MongoDB python | Delete Data and Drop Collection

Last Updated : 04 Jul, 2025
Suggest changes
Share
Like Article
Like
Report

In MongoDB, deletion is key to efficient data management. PyMongo offers methods to delete a single document, multiple documents, all documents in a collection or the entire collection itself. Here's a quick overview of these techniques:

1. Delete a single document: Use delete_one() to remove only the first document that matches the filter.

res = my_collection.delete_one({"name": "Mr.Geek"})

To see the number of documents deleted :

print(res.deleted_count)

2. Delete Multiple Documents: Use delete_many() to remove all documents that match a specific condition.

res = my_collection.delete_many({"name": "Mr.Geek"})

To see the number of documents deleted :

print(res.deleted_count)

3. Delete All Documents in a Collection: Using delete_many({}): This deletes all documents in the collection but keeps the collection and its indexes.

res = my_collection.delete_many({})

To see the number of documents deleted :

print(res.deleted_count)

4. Drop the entire collection: If you want to remove all documents along with the collection and its indexes, use drop().

db.my_collection.drop()

Examples

Example 1: Delete a single document

Python
from pymongo import MongoClient c = MongoClient("mongodb://localhost:27017/") db = c["my_database"] col = db["my_collection"] col.insert_many([ {"name": "Mr.Geek", "role": "Developer"}, {"name": "Mr.Geek", "role": "Designer"} ]) res = col.delete_one({"name": "Mr.Geek"}) print(res.deleted_count) 

Output

1

Explanation:

  • delete_one() deletes only the first document that matches the filter { "name": "Mr.Geek" }. Even if multiple documents match, only one is removed.
  • deleted_count shows how many documents were deleted (expected: 1).

Example 2: Delete multiple documents

Python
from pymongo import MongoClient c = MongoClient("mongodb://localhost:27017/") db = c["my_database"] col = db["my_collection"] col.insert_many([ {"name": "Mr.Geek", "role": "Developer"}, {"name": "Mr.Geek", "role": "Tester"}, {"name": "Mr.Geek", "role": "Manager"} ]) res = col.delete_many({"name": "Mr.Geek"}) print(res.deleted_count) 

Output

4

Explanation:

  • delete_many() deletes all documents matching the filter { "name": "Mr.Geek" }.
  • deleted_count shows how many documents were deleted.

Example 3: Delete all documents in a collection

Python
from pymongo import MongoClient c = MongoClient("mongodb://localhost:27017/") db = c["my_database"] col = db["my_collection"] col.insert_many([ {"product": "Laptop"}, {"product": "Phone"}, {"product": "Tablet"} ]) res = col.delete_many({}) print(res.deleted_count) 

Output

3

Explanation:

  • Passing an empty filter {} to delete_many() means “match all documents”. This will remove every document in the collection.
  • deleted_count will show the total deleted (expected: 3).

Example 4: Drop the entire collection

Python
from pymongo import MongoClient c = MongoClient("mongodb://localhost:27017/") db = c["my_database"] col = db["my_collection"] col.insert_many([ {"product": "Laptop"}, {"product": "Phone"}, {"product": "Tablet"} ]) db.my_collection.drop() print("Collection dropped successfully.") 

Output

Collection dropped successfully.

Explanation:

  • .drop() deletes the entire collection, including all documents and indexes.
  • db.my_collection.drop() and col.drop() are functionally identical.

Related articles


Next Article

Similar Reads

Practice Tags :