MongoDB Delete Document

In this post, we will learn how to delete a document using MongoDB.

Delete Methods

MongoDB provides the following methods to delete documents of a collection:
  • db.collection.deleteOne() - Delete at most a single document that match a specified filter even though multiple documents may match the specified filter.
  • db.collection.deleteMany() - Delete all documents that match a specified filter.
  • db.collection.remove() - Delete a single document or all documents that match a specified filter.
The examples on this page use the posts collection. To populate the posts collection, run the following:
db.posts.insertMany([
   {
      title: 'MongoDB Overview', 
      description: 'MongoDB is no sql database',
      by: 'Java Guides',
      url: 'https://javaguides.net',
      tags: ['mongodb', 'database', 'NoSQL'],
      likes: 100
   },
 
   {
      title: 'NoSQL Database', 
      description: "NoSQL database doesn't have tables",
       by: 'Java Guides',
      url: 'https://javaguides.net',
      tags: ['mongodb', 'database', 'NoSQL'],
      likes: 20, 
      comments: [ 
         {
            user:'user1',
            message: 'My first comment',
            dateCreated: new Date(2013,11,10,2,35),
            like: 0 
         }
      ]
   }
]);

{
        "acknowledged" : true,
        "insertedIds" : [
                ObjectId("5e18246f7695f4d696a05985"),
                ObjectId("5e18246f7695f4d696a05986")
        ]
}

Delete All Documents

To delete all documents from a collection, pass an empty filter document {} to the db.collection.deleteMany() method.
The following example deletes all documents from the inventory collection:
db.posts.deleteMany({})
The method returns a document with the status of the operation.

Delete Only One Document that Matches a Condition

To delete at most a single document that matches a specified filter (even though multiple documents may match the specified filter) use the db.collection.deleteOne() method.
The following example deletes the first document where the title is "MongoDB Overview":
db.posts.deleteOne( { title: "MongoDB Overview" } )

Delete All Documents that Match a Condition

You can specify criteria, or filters, that identify the documents to delete. The filters use the same syntax as read operations.
To specify equality conditions, use : expressions in the query filter document:
{ <field1>: <value1>, ... }
A query filter document can use the query operators to specify conditions in the following form:
{ <field1>: { <operator1>: <value1> }, ... }
To delete all documents that match deletion criteria, pass a filter parameter to the deleteMany() method.
The following example removes all documents from the inventory collection where the status field equals "A":
db.inventory.deleteMany({ by : "Java Guides" })
The method returns a document with the status of the operation.

Summary

The below diagram shows the summary of all the commands used in this post:

Comments