2013-07-31 3 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 쿼리를 어떻게 볼 수 있습니까?
아래와 같이보고 싶습니다.

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

나는 /var/log/mongo/mongo.log 원시 MongoDB의 쿼리를 볼 수 있습니다.
그러나 ORM (Mongoid)의 로그에서 원시 쿼리를보고 싶습니다. 난 두려워

+1

2 년 후에도 괜찮은 답변이 없습니까? – Donato

+0

위로! 이것은 mongodb에서 CRUD를 익히는 데 매우 도움이됩니다. – Charlie

+0

Moped를 콘솔에 기록하고자하는 사람들을 위해 : 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) 

IT는 몽고 정보 콘솔을 덤프합니다. 프로덕션 환경에서이를 변경하려고합니다. 그러나 개발하는 동안 나는 DB가 무엇을하는지 볼 수 있기를 좋아합니다. 특히 MongoDb에 새로운 브랜드이기 때문에.

관련 문제