How to get removed document in MongoDB?

2019-01-12 09:11发布

问题:

Is it possible to get the document that was removed from MongoDB?

result = db.things.remove({_id: id})
// is there a result.removedObjects?

Thanks!

回答1:

It is possible, but it requires a different command. You are looking for the findAndModify command.

If you set the options to {query: ..., remove: true, new: false}, you will delete a single document and return the removed document.

Some notes:

  • new is a keyword in many languages, ensure that you are wrapping the text of the flag correctly.
  • the findAndModify will only work with a single document. This is fine for deleting _id but not good for ranged removes.


回答2:

db.collection('mycollection').findOneAndDelete({
    id: '123456'
}, function (error, response) {
    response.value;// returns the deleted object, but no longer exists in the database
});


标签: mongodb