[英]Mongoid - querying by referenced document
我有一個名為Ad的模型,如下所示:
class Ad
include Mongoid::Document
referenced_in :category
end
和類別模型:
class Category
include Mongoid::Document
referenced_in :domain
references_many :ads
end
如何按域選擇廣告? 我曾嘗試使用Ad.where('category.domain_id' => domain.id)
但這不起作用。
問題是MongoDB沒有任何方法將Category
記錄映射到Ad
記錄。 它只知道Ad
記錄有一個category_id
字段,因此'category.domain_id'
將始終不返回任何內容。 查詢中的點表示法僅適用於嵌入式文檔,而不適用於引用(它們仍然是MongoDB中的二等公民)。
因此,要解決您的問題,您需要2個查詢:
category_ids = Category.where(:domain_id => domain.id).map(&:_id)
Ad.where(:category_id.in => category_ids)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.