11

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

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

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

通过在这两个指令之间添加更多数据来收集,可以很容易地打破这一点。

4

2 回答 2

16

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

Model.collection.drop

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

于 2014-02-13T16:11:56.633 回答
7

例如,您可以将基础集合重命名tmp_cf20c448f824763454ada2c4b2434178为. 然后,所有新的写入都将转到一个新的、自动创建的旧名称集合,您可以毫不费力地阅读所有文档,然后简单地删除该临时集合。

mongo使用底层 ruby​​ 驱动程序(10gen用于 mongoid 2.x 或moped用于 mongoid 3.x)通常更容易完成这类事情。

于 2012-09-03T10:56:48.097 回答