簡體   English   中英

如何查看Mongoid的原始mongoDB查詢

[英]How can I see raw mongoDB queries with Mongoid

我按照此頁面查看了mongoDB查詢。 結果我可以看到Moped日志。
但是我看不到原始的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)的日志中看到原始查詢。

我想我得到了答案。 這是關於dsims回答以及我在關於日志記錄的文檔中看到的內容。

我有一個初始化文件(config / initializers / mongoid.rb),我在那里:

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

它將mongo信息轉儲到控制台。 您可能希望在生產環境中更改此設置。 但在開發過程中,我希望能夠看到數據庫正在做什么。 特別是因為我是MongoDb的新手。

據我所知,我擔心mongodb驅動器mongoid使用的是輕便摩托車

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

要查看原始查詢,您需要修改它,因為您現在正在執行只需拖尾mongodb日志。

要使用Mongoid運行查詢命令,請從項目目錄運行mongo以編寫查詢。 show collectionsdb.users.find等示例,如果存在users表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM