Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Selected Reading
What is the difference between deleteOne() and findOneAndDelete() operation in MongoDB?
Both deleteOne() and findOneAndDelete() remove a single document from a MongoDB collection, but they differ in their return values. The deleteOne() method returns only the deletion status, while findOneAndDelete() returns the actual deleted document.
Syntax
// deleteOne() - returns deletion status db.collection.deleteOne(filter, options) // findOneAndDelete() - returns deleted document db.collection.findOneAndDelete(filter, options)
Sample Data
db.demo448.insertMany([
{"Name": "Chris", "Age": 21},
{"Name": "David", "Age": 23},
{"Name": "Bob", "Age": 22}
]);
{
"acknowledged": true,
"insertedIds": [
ObjectId("5e7a291cbbc41e36cc3caeca"),
ObjectId("5e7a2926bbc41e36cc3caecb"),
ObjectId("5e7a2930bbc41e36cc3caecc")
]
}
db.demo448.find();
{ "_id": ObjectId("5e7a291cbbc41e36cc3caeca"), "Name": "Chris", "Age": 21 }
{ "_id": ObjectId("5e7a2926bbc41e36cc3caecb"), "Name": "David", "Age": 23 }
{ "_id": ObjectId("5e7a2930bbc41e36cc3caecc"), "Name": "Bob", "Age": 22 }
Example 1: Using deleteOne()
db.demo448.deleteOne({_id: ObjectId("5e7a2926bbc41e36cc3caecb")});
{ "acknowledged": true, "deletedCount": 1 }
Example 2: Using findOneAndDelete()
db.demo448.findOneAndDelete({"_id": ObjectId("5e7a2930bbc41e36cc3caecc")});
{ "_id": ObjectId("5e7a2930bbc41e36cc3caecc"), "Name": "Bob", "Age": 22 }
Key Differences
| Method | Return Value | Use Case |
|---|---|---|
| deleteOne() | Deletion status (acknowledged, deletedCount) | When you only need confirmation of deletion |
| findOneAndDelete() | The deleted document itself | When you need the deleted document data |
Conclusion
Use deleteOne() for simple deletions when you only need status confirmation. Choose findOneAndDelete() when you need to retrieve the deleted document data for logging, auditing, or further processing.
Advertisements
