我正在使用Rails 3和MongoDB(mongoid适配器)构建应用程序。 我很难在子记录中找到具有特定条件的父记录。
class Food
include Mongoid::Document
has_many :subscriptions, as: :subscribable
end
class Subscription
include Mongoid::Document
field :subscriber_id
belongs_to :subscribable, polymorphic: true
belongs_to :subscriber
end
我想选择特定用户尚未订阅的食物。
这是我的查询不起作用。
Food.not_in('subscriptions.subscriber_id' => [User.first.id])
但它会归还所有食物。 我的查询出了什么问题?
感谢任何帮助。
由于
答案 0 :(得分:0)
此类查询在Mongoid中不起作用。以下查询需要连接两个集合,但MongoDB没有加入的概念。因此,当您查询时,您只能使用您正在查询的集合中的文档字段 - 在这种情况下,它是foods
集合(最有可能)。
如果您不想根据订阅查询食物,我建议您在食物中嵌入Subscription
。如上所述here。