0

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

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

任何帮助表示赞赏。

谢谢

4

1 回答 1

0

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

如果您不想根据订阅查询食物,我建议您将其嵌入到Subscription食物中。如此处所述。

于 2012-08-20T06:42:17.050 回答