Le problème est que MongoDB n'a aucun moyen de mapper une Category
enregistrer dans une Ad
enregistrement. Tout ce qu'il sait, c'est qu'une Ad
l'enregistrement a un category_id
champ donc 'category.domain_id'
ne retournera toujours rien. La notation par points à l'intérieur des requêtes ne fonctionne que pour les documents intégrés, pas pour les références (qui sont toujours des citoyens de seconde classe dans MongoDB).
Donc, pour résoudre votre problème, vous aurez besoin de 2 requêtes :
category_ids = Category.where(:domain_id => domain.id).map(&:_id)
Ad.where(:category_id.in => category_ids)