2013-07-31 6 views
33

Ich folgte dieser Seite, um MongoDB-Abfragen zu sehen. Als Ergebnis konnte ich Moped Log sehen.
Aber ich kann keine rohen MongoDB-Abfragen sehen.
How can I display MongoDB queries in the rails console/serverWie kann ich rohe MongoDB-Abfragen mit Mongoid sehen

Ich mochte das unten.

# 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) 

Wie kann ich rohe MongoDB-Abfragen mit Mongoid sehen?
Ich möchte wie folgt sehen.

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

kann ich roh mongoDB Abfragen in /var/log/mongo/mongo.log sehen.
Aber ich möchte rohe Abfragen in ORM (Mongoids) Log sehen.

+1

2 Jahre später und immer noch keine anständige Antwort? – Donato

+0

Hoch! Dies ist sehr hilfreich, um CRUD in mongodb vertraut zu machen. – Charlie

+0

Für diejenigen, die Moped auf die Konsole protokollieren wollen: 'Moped.logger = Logger.new ($ stdout)' – dsims

Antwort

0

Um Abfragebefehle mit Mongoid auszuführen, führen Sie mongo aus dem Projektverzeichnis, um Ihre Abfragen zu schreiben. Beispiele wie show collections, db.users.find, wenn eine Benutzertabelle existiert.

3

Ich glaube, ich habe eine Antwort bekommen. Dies ist die Antwort von dsims und auch von dem, was ich in der Dokumentation bezüglich der Protokollierung gesehen habe.

Ich habe eine initialize-Datei (config/initializers/mongoid.rb) und dort in die ich habe:

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

Es Dumps die Konsole den Mongo Info aus. Wahrscheinlich möchten Sie dies für eine Produktionsumgebung ändern. Aber während der Entwicklung möchte ich gerne sehen, was die DB macht. Vor allem, weil ich neu bei MongoDb bin.

Verwandte Themen