2012-06-06 54 views
1

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

删除记录并删除整个文档的方式是什么?

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

回答

4

对不起,这没有很好的记录。我正在为此打开一个问题。

查看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") 
1

是的,我已经偶然发现了几次在MongoMapper中删除东西。这种技术似乎还有工作:

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

我花了一段时间才能找出为什么delete_all是SOOOOO要比快destroy_all :-P

0

而且delete_alldestroy_all也作为勇敢的方法,这样你就可以做这样的事情:

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

取决于如果你想避免回调(delete_all)或执行它们(destroy_all)上。