Проблема в том, что MongoDB не имеет никакого способа сопоставления записи Category
с записью Ad
.Все, что он знает, это то, что запись Ad
имеет поле category_id
, поэтому 'category.domain_id'
всегда ничего не вернет.Точечная запись внутри запросов работает только для встроенных документов, а не для ссылок (которые все еще являются гражданами второго сорта в MongoDB).
Итак, для решения вашей проблемы вам потребуется 2 запроса:
category_ids = Category.where(:domain_id => domain.id).map(&:_id)
Ad.where(:category_id.in => category_ids)