MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Mongoid - consulta por documento referenciado


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)