我使用Mongomapper在Rails中享受着令人惊叹的MongoDB,但我在删除记录方面遇到了问题。
删除记录以及删除整个文档的可接受方式是什么?
我尝试使用Stuff.destroy_all但它似乎使网络服务器崩溃。
答案 0 :(得分:4)
抱歉,没有详细记录。我正在为此开启一个问题。
请参阅class methods和instance 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")
答案 1 :(得分:1)
是的,我偶然发现并且在MongoMapper中删除了很多东西。这种技术似乎也有效:
MessageLog.destroy_all(:created_at.gte => @start_time)
我花了一段时间才弄明白为什么delete_all
比destroy_all
快得多:{p}
答案 2 :(得分:0)
并且delete_all
和destroy_all
也可以作为Plucky方法使用,因此您可以执行以下操作:
MyDoc.where(status: 'unneeded').delete_all
MyDoc.where(status: 'unneeded').destroy_all
取决于您是想避免回调(delete_all
)还是执行它们(destroy_all
)。