我遇到了与mongoid any_of
问题。我试图发现有任何一个领域> 0,或另一个对象> 0.我的查询是:Mongoid或/ any_of意外行为
Model.any_of(best_friend_method.gt => 0, method.gt => 0).desc(best_friend_method, method)
它“翻译”中:
#<Mongoid::Criteria
selector: {"$or"=>[{:best_friends_lc_sum=>{"$gt"=>0}, :lc_sum=>{"$gt"=>0}}]},
options: {:sort=>[[:best_friends_lc_sum, :desc], [:lc_sum, :desc]]},
class: FbAlbum,
embedded: false>
据我了解, 这就是我要的。但它只会返回我6个结果。 Model.where(:best_friends_lc_sum.gt => 0).count
也会给我6个结果,但Model.where(:lc_sum.gt => 0).count
会返回我〜850个对象。
我希望我的查询返回这两个联合:是一个mongoid/mongodb错误,或者我做错了什么?
FYI:mongoid 2.4.5,MongoDB的2.0.2,3.1.3轨道
感谢您的时间!
您是否正在查询正确的属性?看起来您在查询中使用了best_friend_method和method,但您的条件是best_friends_lc_sum和lc_sum。 – 2012-03-22 14:39:47
是的,它是通缉。我具有相同的一组属性,但使用'lct'而不是'lc'。我的方法应该查找给出的参数,并根据那些属性(lct或lc)将用于查询的选项 – ksol 2012-03-22 14:43:20
对不起ksol,没有更多信息,似乎正在构建查询通过mongoid是正确的,但我对数据模型以及这些集合中的内容感到困惑。如果你直接对mongo运行查询,它会给你你想要的吗? – 2012-03-22 15:42:22