是否有类似于findAndModify()的东西,但是对于mongodb中的remove()。我需要删除一个文档,同时检索其内容。 我正在寻找一个解决方案,它在mongodb服务器的一个“查询”中执行。 感谢。
答案 0 :(得分:2)
MongoDB的findAndModify
命令支持remove
选项。它与update
选项互斥,因此您可以指定remove
而不是为update
提供“新对象”(原子修饰符或替换文档)。此外,虽然new
选项通常允许您在更新前或更新后状态返回文档,但它不适用于remove
。
答案 1 :(得分:0)
我不相信mongo有这个功能。我也不明白你为什么需要这个。如果您正确识别文档(并尽可能使用索引),则删除操作将非常快速且非常有效。
但是,一旦您检索了要删除的文档,就可以使用它的_id
属性再次找到它以进行删除。
var doc = db.data.find( { "please": "delete me" } );
db.data.remove( { "_id": doc._id } );
Mongo会根据_id
将您的馆藏编入索引作为默认值,因此当您使用它来识别文档时(就像我们使用删除一样),实际操作非常有效。