是否可以获取从MongoDB中删除的文档?如何在MongoDB中删除文档?
result = db.things.remove({_id: id})
// is there a result.removedObjects?
谢谢!
是否可以获取从MongoDB中删除的文档?如何在MongoDB中删除文档?
result = db.things.remove({_id: id})
// is there a result.removedObjects?
谢谢!
这是可能的,但它需要一个不同的命令。您正在寻找findAndModify
command。
如果您将选项设置为{query: ..., remove: true, new: false}
,您将删除单个文档并返回已删除的文档。
一些注意事项:
new
是在许多语言中的关键字,请确保您正确包装标志的文本。findAndModify
只能使用单个文档。这适用于删除_id
,但不适用于范围删除。db.collection('mycollection').findOneAndDelete({
id: '123456'
}, function (error, response) {
response.value;// returns the deleted object, but no longer exists in the database
});
尽管这段代码可以解决这个问题,[包括解释](// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-答案)确实有助于提高发布的质量。请记住,您将来会为读者回答问题,而这些人可能不知道您的代码建议的原因。也请尽量不要用解释性注释来挤占代码,这会降低代码和解释的可读性! – kayess 2016-11-23 10:50:28
当'remove:true'时忽略'new'参数吗?在[node-mongodb-native docs]中找到它(https://github.com/mongodb/node-mongodb-native#find-and-modify)和[here](http://docs.mongodb.org/手动/参考/命令/ findAndModify /) – balazs 2014-01-11 19:45:53
很可能它被忽略。这些文档是在写出这个答案后大约12个月写出来的。这表明,你可能是对的,考虑到返回值是相同的,“new”标志可能会被忽略。 – 2014-01-12 02:55:29
如何去除返回符合条件的文档的范围? – thethakuri 2016-06-04 07:03:26