【问题标题】:Deleting records using Mongomapper in Rails在 Rails 中使用 Mongoapper 删除记录
【发布时间】:2012-06-06 17:56:19
【问题描述】:

我正在使用 Mongomapper 在 Rails 中享受非常棒的 MongoDB,但我在删除记录时遇到了问题。

删除记录以及删除整个文档的公认方法是什么?

我尝试使用 Stuff.destroy_all,但它似乎使 Web 服务器崩溃。

【问题讨论】:

    标签: ruby-on-rails mongodb mongomapper


    【解决方案1】:

    抱歉,没有很好的记录。我正在为此打开一个问题。

    请参阅class methodsinstance methods

    my_doc.destroy    # fires callbacks
    my_doc.delete     # no callbacks, just removes it from the database
    MyDoc.destroy_all # fires callbacks, shouldn't crash...!
    MyDoc.delete_all  # no callbacks
    MyDoc.destroy("b965105ea203368234636df2", "368234636df21c64f05358a4")
    MyDoc.delete("b965105ea203368234636df2", "368234636df21c64f05358a4")
    

    【讨论】:

      【解决方案2】:

      是的,我在删除 MongoMapper 中的内容时遇到过几次失误。这种技术似乎也很有效:

      MessageLog.destroy_all(:created_at.gte => @start_time)
      

      我花了一段时间才弄清楚为什么 delete_alldestroy_all 快得多:-p

      【讨论】:

        【解决方案3】:

        delete_alldestroy_all 也可以作为 Plucky 方法使用,因此您可以执行以下操作:

        MyDoc.where(status: 'unneeded').delete_all
        MyDoc.where(status: 'unneeded').destroy_all
        

        取决于您是要避免回调 (delete_all) 还是执行回调 (destroy_all)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-04-17
          • 1970-01-01
          • 1970-01-01
          • 2019-08-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多