MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mongoid - interrogation par document référencé

Le problème est que MongoDB n'a aucun moyen de mapper une Category enregistrer dans une Ad enregistrement. Tout ce qu'il sait, c'est qu'une Ad l'enregistrement a un category_id champ donc 'category.domain_id' ne retournera toujours rien. La notation par points à l'intérieur des requêtes ne fonctionne que pour les documents intégrés, pas pour les références (qui sont toujours des citoyens de seconde classe dans MongoDB).

Donc, pour résoudre votre problème, vous aurez besoin de 2 requêtes :

category_ids = Category.where(:domain_id => domain.id).map(&:_id)
Ad.where(:category_id.in => category_ids)