在Rails控制器中执行原始MongoDB查询

时间:2012-12-21 00:04:26

标签: ruby-on-rails ruby ruby-on-rails-3 mongodb mongoid3

我有跟随原始mongo查询,我想直接在我的Rails控制器中执行:

 db.user_places.update({place_id: destroy_model.id}, {$set: {place_id: keep_model.id}}, false, true)

对于续集,我使用ActiveRecord::Base.connection.execute(sql)来执行我的SQL查询。

使用MongoDB / mongoid gem执行此操作的等效方法是什么?我试过跟How to fire raw MongoDB queries directly in Ruby,但我没有使用MongoMapper。

谢谢。

编辑:我解决这个问题的方法是从Mongoid文档中运行以下命令:

UserPlace.where(place_id: destroy_model.id).update_all(place_id: keep_model.id)

这将生成上面的原始mongo查询并以ActiveRecord方式执行它。

1 个答案:

答案 0 :(得分:0)

我找到了一种方法,无需与Mongo控制台建立连接。使用mongoid,您只需使用update_all生成相同的查询。