2014-09-03 2 views
0

DB를 Mongoid로 쿼리 할 때 mongo 셸 내에서와 동일한 결과를 반환하지 않습니다. mongo shell을 사용하면 내가 할 때mongoid 필터가 mongo 셸과 같은 결과를 반환하지 않습니다.

db.scenarios.find({"test_run_id": 169926}).count() 

나는 결과가 214가된다. 나는 다음과 같은 몽고이 성명을 시도했을 때 :

Scenario.where({'test_run_id' => 169926}).to_a.count 

나는 결과가 0이된다.

도와주세요.

+0

두 경우 모두 동일한 데이터베이스에 연결 하시겠습니까? –

+0

예, Scenario.all() 할 때 db.scenarios.find() 할 때 결과가 동일합니다. count() – cfpete

+0

Moped 로그에서 MongoDB에 보내는 쿼리를 확인 했습니까? 'Scenario.collection.find (: test_run_id => 169926)'라고 말한 것을 보았습니까? –

답변

0

문제는 내 model.rb 파일이 Integer 일 때 유형 문자열로 test_run_id를 지정했기 때문입니다. 따라서 필터가 실행될 때 "169926"! = 169926이므로 일치하는 항목이 없습니다. 여기에서 교훈은 model.rb와 실제로 저장된 데이터 유형이 일치하는지 확인하는 것입니다.

관련 문제