【问题标题】:Find and remove all in mongo/mongoid在 mongo/mongoid 中查找并删除所有
【发布时间】:2012-09-03 10:48:45
【问题描述】:

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

到目前为止我正在使用:

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

这可以通过在这两条指令之间添加更多数据来轻松破解。

【问题讨论】:

    标签: mongodb mongoid


    【解决方案1】:

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

    Model.collection.drop
    

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 欢迎来到stackoverflow :)。您应该接受可以解决您的问题的答案(左侧的小绿色复选标记)。您还可以为出色的答案投票,这将鼓励回答者并向社区表明帖子的有用性。
      • 哦,没看到复选标记。我试图投票,但我还没有足够的积分:)
      猜你喜欢
      • 1970-01-01
      • 2012-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多