MongoidのFxxkなdelete_allの実装に気をつけろ!

ruby-1.9.2-p180 :001 > User.delete_all(:name => "naoty")
 #=> 200 # 全消去…だと…!?まじ、Fucx!
ruby-1.9.2-p180 :002 > User.delete_all(conditions: { name: "naoty" })
 #=> 1 # 条件に合うドキュメントのみ削除
ruby-1.9.2-p180 :003 > User.where(:name => "naoty").delete_all
 #=> 1 # こちらの方が直感的で安全かも
  • いつもどおりのノリでModel.delete_allを使うと全消去するので、かなり注意!

参考
http://mongoid.org/docs/persistence/standard.html#delete_all
http://mongoid.org/docs/querying/modification.html