4

と を使用'mongo', '1.6.2'して'mongoid', '2.4.11'います。コンソールで実行すると、ProPlayerモデルがあります。

irb(main):006:0> ProPlayer.first
=> #<ProPlayer _id: 508a5549d3966f02e7000001, _type: nil, created_at: nil, updated_at: nil, first_name: "Adam", last_name: "Jones", batting_style: "R", image_thumbnail: "1.jpg", is_pro_player: true, team_id: BSON::ObjectId('508a550ad3966f02ce000012'), token_id: nil>

ここでは、is_pro_player が true のレコードが存在しますが、where クエリを実行すると、0 レコードが返されますが、実際には 71 レコードが存在します。

irb(main):008:0> ProPlayer.where(:is_pro_player=>true).to_a.size
=> 0

このクエリは以前は機能していましたが、突然機能しなくなりました。何が問題なのか誰にも教えてもらえますか?

4

2 に答える 2

0

次のことを試してください。

ProPlayer.where(:is_pro_player.exists => true, is_pro_player: true).count
于 2013-07-23T07:22:07.727 に答える
0

私は同じ問題を抱えていて、タイプを「ブール値」から「Mongoid::Boolean」に変更して解決しました。その後、「1」と「0」ではなく「true」と「false」としてブール値をデータベースに入れ始めます" および "where" 条件が再び機能し始めます

于 2014-01-15T11:33:06.680 に答える