:複数の証拠を持っているだけで数週間を見つけるにはレールとモンゴイドを使った関連付けの「カウント」でレコードを検索するにはどうすればよいですか?これらのモデルでは
Week.where(:proof.count.gt => 0)
:
class Week
has_many :proofs
end
class Proof
belongs_to :week
end
は、私のような何かをしたいです。
これに対処するためと思われる1つの答えがあります:
Can rails scopes filter on the number of associated classes for a given field
は、しかし、IDが証明して保存されているので、この例では、週にproof_idsというような属性がありません。これは動作しません:
Week.where(:proof_ids.gt => 0)
どのようにこのクエリは可能ですか?概念的には単純ですが、私はmongoやmongoidでこれを行う方法を理解できません。
同様に、私は次のように例えば証拠の数だけ注文したいと思います:
Week.desc(:proofs.size)
しかし、これはまた、動作しません。
カウンタキャッシュは両方の特定の質問のオプションであることを認識していますが、クエリを実行することもできます。
ご協力いただきありがとうございます。
includes(:proofs)を削除して、パフォーマンスを1トン増やすことができます。現在のところ、すべてのデータをロードしています:プルーフ、本当に必要なのはクイックカウントクエリです。やってみて。 –
@RobVolkこれは古いコードでした!ヘッドアップをありがとう! – Damien
データベースからアプリケーションのメモリまでのすべての証明をすべての週に受け取るので、アプリケーションを終了させます – antiqe