Vấn đề là MongoDB không có bất kỳ cách nào để ánh xạ một Category
ghi vào Ad
ghi lại. Tất cả những gì nó biết là một Ad
bản ghi có category_id
trường so 'category.domain_id'
sẽ luôn không trả lại gì. Ký hiệu dấu chấm bên trong các truy vấn chỉ hoạt động đối với các tài liệu được nhúng, không phải tài liệu tham khảo (vẫn là công dân hạng hai trong MongoDB).
Vì vậy, để giải quyết vấn đề của bạn, bạn sẽ cần 2 truy vấn:
category_ids = Category.where(:domain_id => domain.id).map(&:_id)
Ad.where(:category_id.in => category_ids)