sql >> Base de Datos >  >> NoSQL >> MongoDB

obtener registro con al menos un objeto asociado

Tu problema es que el has_many de Mongoid no deja nada en el documento principal, por lo que no hay consultas en el documento principal que le resulten útiles. Sin embargo, belongs_to :user en tu Task agregará un :user_id campo a las tasks recopilación. Eso te deja con cosas horribles como esta:

user_ids = Task.all.distinct(:user_id)
users    = User.where(:id => user_ids).limit(10)

Por supuesto, si tuviera embeds_many :tasks en lugar de has_many :tasks entonces podría consultar :tasks dentro de los users colección como quieras. OTOH, esto probablemente rompería otras cosas.

Si necesita mantener las tareas separadas (es decir, no incrustadas), puede configurar un contador en User para realizar un seguimiento de la cantidad de tareas y luego podría decir cosas como:

User.where(:num_tasks.gt => 0).limit(10)