sql >> Base de Datos >  >> NoSQL >> MongoDB

Mongoid:consulta por documento de referencia

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)