如何在子记录上选择具有特定条件的父记录



我正在用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])

但它会退回所有的食物。我的查询出了什么问题?

感谢您的帮助。

感谢

这样的查询在Mongoid中不起作用。下面的查询需要连接两个集合,但是MongoDB没有连接的概念。因此,当您进行查询时,您只能使用正在查询的集合中文档的字段——在这种情况下,它很可能是foods集合。

如果你不想根据订阅查询食物,我建议你在食物中嵌入Subscription。如本文所述。

相关内容

  • 没有找到相关文章

最新更新