2013-07-31 40 views
33

我跟隨此頁面查看mongoDB查詢。結果我可以看到Moped日誌。
但我看不到原始的mongoDB查詢。
How can I display MongoDB queries in the rails console/server我如何看到與Mongoid的原始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)的日誌中看到原始查詢。

+1

2年後,仍然沒有像樣的答案? – Donato

+0

Up!這對於熟悉MongoDB中的CRUD非常有用。 – 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) 

它轉儲出蒙戈信息控制檯。您可能想要更改此生產環境。但是,在開發過程中,我喜歡能夠看到數據庫在做什麼。特別是因爲我是MongoDb的全新。