2014-09-03 108 views
0

當我嘗試使用Mongoid查詢我的數據庫時,它沒有返回與我在mongo shell內執行相同的結果。隨着蒙戈殼,當我做mongoid過濾器沒有返回與mongo shell相同的結果

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

我得到214結果。當我嘗試以下的mongoid語句:

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

我得到0作爲結果。

請幫忙。

+0

您確定在兩種情況下都連接到相同的數據庫嗎? – 2014-09-03 19:32:42

+0

是的,當我做Scenario.all()。計數結果是相同的,當我做db.scenarios.find()。count() – cfpete 2014-09-03 19:37:11

+0

你檢查了Moped日誌,看看Mongoid發送到MongoDB的查詢?你嘗試過'Scenario.collection.find(:test_run_id => 169926)'看看有什麼說的嗎? – 2014-09-03 20:08:16

回答

0

問題是我的model.rb文件指定test_run_id爲String類型,它應該是Integer。所以當執行過濾器時,「169926」!= 169926,因此找不到匹配。這裏的教訓是確保數據類型與model.rb和實際存儲的內容相匹配。

相關問題