MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mongoid - Abfrage nach referenziertem Dokument

Das Problem ist, dass MongoDB keine Möglichkeit hat, eine Category zuzuordnen in eine Ad aufnehmen Aufzeichnung. Alles, was es weiß, ist, dass eine Ad Datensatz hat eine category_id Feld also 'category.domain_id' wird immer nichts zurückgeben. Die Punktnotation innerhalb von Abfragen funktioniert nur für eingebettete Dokumente, nicht für Referenzen (die in MongoDB immer noch Bürger zweiter Klasse sind).

Um Ihr Problem zu lösen, benötigen Sie also 2 Abfragen:

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