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

Kos*_*ski 8 mongodb mongoid

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

到目前为止我一直在使用:

Model.collection.find().to_json
Model.delete_all
Run Code Online (Sandbox Code Playgroud)

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

Que*_*tin 13

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

Model.collection.drop
Run Code Online (Sandbox Code Playgroud)

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


Ser*_*sev 7

例如,您可以将底层集合重命名tmp_cf20c448f824763454ada2c4b2434178.然后,所有新写入会去一个新的,自动创建与旧名称集合,你可以,不匆忙和烦恼,阅读所有文件,然后简单地丢弃临时集合.

这种东西通常使用底层的红宝石驱动程序(mongomgenoid 2.x的10gen 或mopedmongoid 3.x)更容易完成.