This query is not possible since MongoDB does not have joins. You would
need to store a "counter cache" for reports on the User in order to do so.
A quick and dirty example:
class User
include Mongoid::Document
field :reports_count, type: Integer
has_many :reports
end
class Report
include Mongoid::Document
belongs_to :user
after_create do |doc|
doc.user.inc(:reports_count, 1)
end
after_destroy do |doc|
doc.user.inc(:reports_count, -1)
end
end
2012/11/5 Maria Serrano Cáceres <maserranocace...@gmail.com>
> 2 models:
> Class User
> include Mongoid::Document
> has_many :reports
> end
> Class Report
> include Mongoid::Document
> belongs_to :user
> end
> I need a query to get all users have 6 or more reports, something like:.
> Users.where(reports.count > 5)
> How can I do it?
> Thank you very much!