在mongo / mongoid中查找并删除所有内容

时间:2012-09-03 10:48:46

标签: mongodb mongoid

mongoid中是否有任何方法可以找到并“读取”集合中的所有文档,同时还可以在一个原子查询中删除它们?

到目前为止,我正在使用:

Model.collection.find().to_json
Model.delete_all

可以通过在这两个指令之间添加更多数据来轻松解决这个问题。

2 个答案:

答案 0 :(得分:13)

有一个更简单的解决方案。你可以这样做:

Model.collection.drop

它将删除当前集合,并创建一个具有相同名称的新集合(当然是空的)。

答案 1 :(得分:7)

例如,您可以将重命名基础集合改为tmp_cf20c448f824763454ada2c4b2434178。然后,所有新的写入将转到一个新的,自动创建的旧名称集合,您可以在没有急速和担忧的情况下阅读所有文档,然后简单地删除该临时集合。

这种东西通常使用底层的ruby驱动程序(mgenoid 2.x的10gen mongo或mongoid 3.x的moped)更容易完成。