PHP MongoDB删除文档并将其返回

时间:2013-12-10 13:35:28

标签: php mongodb

是否有类似于findAndModify()的东西,但是对于mongodb中的remove()。我需要删除一个文档,同时检索其内容。 我正在寻找一个解决方案,它在mongodb服务器的一个“查询”中执行。 感谢。

2 个答案:

答案 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将您的馆藏编入索引作为默认值,因此当您使用它来识别文档时(就像我们使用删除一样),实际操作非常有效。