gpt4 book ai didi

ruby-on-rails - Mongoid - 通过引用文档查询

转载 作者:可可西里 更新时间:2023-11-01 09:25:26 26 4
gpt4 key购买 nike

我有一个名为 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)

关于ruby-on-rails - Mongoid - 通过引用文档查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4364213/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com