モンゴイドany_of
に問題があります。私は1つのフィールド> 0、または他のいずれかを持っているオブジェクトを検索しようとしている> 0.私のクエリは次のとおりです。私はそれを理解したようモンゴイドまたは任意の予期しない動作
#<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>
:それは中に「翻訳」され
Model.any_of(best_friend_method.gt => 0, method.gt => 0).desc(best_friend_method, method)
これは私が欲しいものです。しかし、それは私に6つの結果を返します。 Model.where(:best_friends_lc_sum.gt => 0).count
でも6件の結果が返ってきますが、Model.where(:lc_sum.gt => 0).count
は〜850件の返品を返します。
私のクエリは、これらの2つの和集合を返すことを期待しています:モンゴイド/モンゴブのエラーですか、何か間違っていますか? FYI
:mongoid 2.4.5、MongoDBの2.0.2は、お時間を3.1.3
おかげレール!
正しい属性をクエリしていますか? best_friend_methodとメソッドをクエリで使用しているようですが、あなたの基準はbest_friends_lc_sumとlc_sumです。 –
はい、それが必要です。私は同じ属性セットを持っていますが、 'lc'の代わりに' lct'を使います。私の方法は、指定されたargsを検索し、それらの属性(lctのものかlcのもの)がクエリに使用されるかに応じて選択することになっています – ksol
申し訳ありませんksol、 mongoidは正しいものですが、私はデータモデルとそのコレクションに含まれるものについて混乱しています。 mongoに対してクエリを直接実行すると、必要なものが得られますか? –