O problema é que o MongoDB não tem como mapear uma
Category
gravar em um Ad
registro. Tudo o que ele sabe é que um Ad
registro tem um category_id
campo para 'category.domain_id'
sempre retornará nada. A notação de ponto dentro de consultas funciona apenas para documentos incorporados, não para referências (que ainda são cidadãos de segunda classe no MongoDB). Então, para resolver seu problema, você precisará de 2 consultas:
category_ids = Category.where(:domain_id => domain.id).map(&:_id)
Ad.where(:category_id.in => category_ids)