有了這些機型:如何通過使用rails和mongoid關聯的「計數」來查找記錄?
class Week
has_many :proofs
end
class Proof
belongs_to :week
end
我想要做的事,如:
Week.where(:proof.count.gt => 0)
要查找有多個證據只有幾個星期。
有一個答案似乎解決這個:
Can rails scopes filter on the number of associated classes for a given field
但在這個例子中,不存在這樣的屬性在周proof_ids因爲ID存儲與證明。這不起作用,例如:
Week.where(:proof_ids.gt => 0)
此查詢的可能性如何?從概念上講很簡單,但我不知道如何用mongo或mongoid做到這一點。
同樣,我想通過樣張的數量,例如像命令:
Week.desc(:proofs.size)
但這也不起作用。
我知道一個計數器緩存是一個選項,可以用於解決兩個具體問題,但我也希望能夠執行查詢。
在此先感謝您的幫助。
您可以刪除包含(:校樣)以提高性能一噸。目前,當您真正需要的是快速計數查詢時,您將加載所有數據:校樣。試試看。 –
@RobVolk這是一些舊的代碼!感謝您的領導! – Damien
它會殺了你的應用程序,因爲你將收到所有的證據從數據庫到你的應用程序的所有證據 – antiqe