El problema es que MongoDB no tiene forma de mapear una Category
grabar en un Ad
registro. Todo lo que sabe es que un Ad
el registro tiene un category_id
campo entonces 'category.domain_id'
siempre devolverá nada. La notación de puntos dentro de las consultas solo funciona para documentos incrustados, no para referencias (que siguen siendo ciudadanos de segunda clase en MongoDB).
Entonces, para resolver su problema, necesitará 2 consultas:
category_ids = Category.where(:domain_id => domain.id).map(&:_id)
Ad.where(:category_id.in => category_ids)