5

我有以下原始 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 的等效方法是什么?我已经尝试过如何在 Ruby 中直接触发原始 MongoDB 查询,但我没有使用 MongoMapper。

谢谢你。

编辑:我对这个问题的解决方案是从 Mongoid 文档中运行以下内容:

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

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

4

1 回答 1

0

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

于 2012-12-21T00:19:47.057 回答