MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

obter registro com pelo menos um objeto associado


Seu problema é que o has_many do Mongoid não deixa nada no documento pai, portanto, não há consultas no documento pai que farão algo útil para você. No entanto, o belongs_to :user em sua Task adicionará um :user_id campo para as tasks coleção. Isso deixa você com coisas horríveis como esta:
user_ids = Task.all.distinct(:user_id)
users    = User.where(:id => user_ids).limit(10)

Claro, se você tivesse embeds_many :tasks em vez de has_many :tasks então você pode consultar o :tasks dentro dos users coleção como você deseja. OTOH, isso provavelmente quebraria outras coisas.

Se você precisar manter as tarefas separadas (ou seja, não incorporadas), poderá configurar um contador em User para acompanhar o número de tarefas e, em seguida, você pode dizer coisas como:
User.where(:num_tasks.gt => 0).limit(10)