簡體   English   中英

Mongoid - 通過引用文檔查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM