This version of the documentation is archived and no longer supported.




Removes all documents that match the filter from a collection.

      writeConcern: <document>
Parameter Type Description
filter document

Specifies deletion criteria using query operators.

To delete all documents in a collection, pass in an empty document ({ }).

writeConcern document Optional. A document expressing the write concern. Omit to use the default write concern.
Returns:A document containing:
  • A boolean acknowledged as true if the operation ran with write concern or false if write concern was disabled
  • deletedCount containing the number of deleted documents


Capped Collections

deleteMany() throws a WriteError exception if used on a capped collection. To remove all documents from a capped collection, use db.collection.drop() instead.

Delete a Single Document

To delete a single document, use db.collection.deleteOne() instead.

Alternatively, use a field that is a part of a unique index such as _id.


Delete Multiple Documents

The orders collection has documents with the following structure:

   _id: ObjectId("563237a41a4d68582c2509da"),
   stock: "Brent Crude Futures",
   qty: 250,
   type: "buy-limit",
   limit: 48.90,
   creationts: ISODate("2015-11-01T12:30:15Z"),
   expiryts: ISODate("2015-11-01T12:35:15Z"),
   client: "Crude Traders Inc."

The following operation deletes all documents where client : "Crude Traders Inc.":

try {
   db.orders.deleteMany( { "client" : "Crude Traders Inc." } );
} catch (e) {
   print (e);

The operation returns:

{ "acknowledged" : true, "deletedCount" : 10 }

The following operation deletes all documents where stock : "Brent Crude Futures" and limit is greater than 48.88:

try {
   db.orders.deleteMany( { "stock" : "Brent Crude Futures", "limit" : { $gt : 48.88 } } );
} catch (e) {
   print (e);

The operation returns:

{ "acknowledged" : true, "deletedCount" : 8 }

deleteMany() with Write Concern

Given a three member replica set, the following operation specifies a w of majority and wtimeout of 100:

try {
       { "client" : "Crude Traders Inc." },
       { w : "majority", wtimeout : 100 }
} catch (e) {
   print (e);

If the acknowledgement takes longer than the wtimeout limit, the following exception is thrown:

   "code" : 64,
   "errInfo" : {
      "wtimeout" : true
   "errmsg" : "waiting for replication timed out"