2013-07-31 5 views
33

このページに続いてmongoDBクエリを表示しました。その結果、私はMopedのログを見ることができました。
しかし、未処理のmongoDBクエリは表示されません。
How can I display MongoDB queries in the rails console/serverMongoidで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) 

MongoDBで未処理のmongoDBクエリを確認するにはどうすればよいですか?
私は以下のように見たいです。

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

/var/log/mongo/mongo.logに未処理のmongoDBクエリが表示されます。
しかし、私はORM(Mongoid)のログで生のクエリを見たいと思っています。

+1

2年後もまともな回答はありませんか? – Donato

+0

アップ!これはCRUDをmongodbに習得するために非常に役立ちます。 – Charlie

+0

コンソールにモペットを記録しようとする人には: 'Moped.logger = Logger.new($ stdout)' – dsims

答えて

0

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

3

私は答えがあると思います。これはdsimsの回答に続くもので、ロギングに関するドキュメンテーションでも見たことからです。

私は初期化ファイル(設定/初期化子/ mongoid.rb)を持っており、そこに私が持っている:

Mongoid.logger = Logger.new($stdout) 
Mongo::Logger.logger = Logger.new($stdout) 

それはモンゴ情報コンソールをダンプします。プロダクション環境でこれを変更したいと思うかもしれません。しかし、開発中に私はDBが何をしているのかを見ることができるのが好きです。特に私はMongoDbの新しいブランドです。

関連する問題