在mongoid中按Id删除

时间:2012-03-31 09:43:55

标签: ruby-on-rails mongodb mongoid

Mongoid中是否有任何一个命令可以使用id删除对象?

类似的东西,

ClassName.delete(:id)

目前我没有看到类似的东西,我正在使用,

obj = ClassName.find(:id)
obj.delete

可以更好吗?

2 个答案:

答案 0 :(得分:3)

另一种方式

ClassName.any_in(:_id => ["id1", "id2"]).destroy_all

答案 1 :(得分:2)

您可以执行以下操作:

ClassName.delete_all(conditions: { _id: BSON::ObjectId("whatevertheidis")})

您需要_id中的下划线,否则它将无效。

此外,它可能无关紧要,但destroy_all将运行模型的回调方法,而delete_all则不会。