40

このページをフォローして、mongoDB クエリを確認しました。その結果、原付のログを見ることができました。
しかし、生の mongoDB クエリは表示されません。
Railsコンソール/サーバーでMongoDBクエリを表示するにはどうすればよいですか

私は以下が好きでした。

# in [rails root]/config/environments/development.rb    
Mongoid.logger.level = Logger::DEBUG
Moped.logger.level = Logger::DEBUG
Mongoid.logger = Logger.new("#{Rails.root}/log/mongoid_development.log")
Moped.logger = Logger.new("#{Rails.root}/log/moped_development.log")

# in [rails root]/log/mongoid_development.log
# show nothing.

# in [rails root]/log/moped_development.log
MOPED: [ip address]:27017 QUERY        database=[database name] collection=[collection name] selector={"$query"=>{"screen_name"=>"ts_3156"}, "$orderby"=>{:_id=>1}} flags=[:slave_ok] limit=-1 skip=0 batch_size=nil fields=nil (54.6286ms)

Mongoid で生の mongoDB クエリを表示するにはどうすればよいですか?
以下のように見たいです。

db.[collection name].find({ $query: {"screen_name"=>"ts_3156"}, $orderby: {:_id=>1} })

/var/log/mongo/mongo.log で生の mongoDB クエリを確認できます。
しかし、ORM(Mongoid) のログで生のクエリを見たいのです。

4

3 に答える 3

1

残念ながら、それがmongodbドライバーmongoidが使用するモペットの方法であり、ログであると報告しています

https://github.com/mongoid/moped/blob/a995d859d85144b47523829f54384bd8d8a870dc/lib/moped/protocol/query.rb#L172

生のクエリを表示するには、今行っているようにこれを変更する必要があります。mongodb ログを追跡するだけです。

于 2013-09-25T11:20:53.563 に答える
0

Mongoid でクエリ コマンドを実行するにmongoは、プロジェクト ディレクトリから実行してクエリを記述します。users テーブルが存在する場合のようshow collectionsな例。db.users.find

于 2016-06-29T14:41:32.873 に答える