2014-09-03 76 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和实际存储的内容相匹配。

相关问题