look
look

Reputation: 778

What's the difference between "deletemany" and "remove" in mongodb?

What's the difference between the two commands here?
db.collection.deleteMany({condition})
db.collection.remove({condition})

Upvotes: 69

Views: 59111

Answers (2)

Dave Amit
Dave Amit

Reputation: 2319

As far as I can say,

db.collection.deleteMany

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

REF: db.collection.deleteMany

Where as

db.collection.remove

return WriteResult

And to remove a single document, there a similar command, db.collection.removeOne where as with db.collection.remove you need to set and option called justOne option to limit delete to 1 document.

Otherwise I guess they are similar.

node.js drivers

When talking about node.js drivers, remove has been deprecated (and may be removed in future releases) and deleteOne or deleteMany.

Hope this makes sense ....

Upvotes: 46

Revol89
Revol89

Reputation: 888

They do the same. The difference is the values that return.

With remove():

> db.ticker.remove({"name": "Bitcoin"})
WriteResult({ "nRemoved" : 2 })

With deleteMany():

> db.ticker.deleteMany({"name": "Bitcoin"})
{ "acknowledged" : true, "deletedCount" : 2 }

Upvotes: 56

Related Questions