我有User
模型,其中包含相关的EnrollmentInformation
模型:
class User
include Mongoid::Document
has_one :enrollment_information
end
class EnrollmentInformation
include Mongoid::Document
belongs_to :user
field :type_one, :type => Boolean
end
我想找到EnrollmentInformation
的{{1}}字段值为真的所有用户。
我已经尝试了几种变体而没有成功。有谁知道如何进行此查询?
type_one
编辑:
更新了查询
答案 0 :(得分:1)
在这种情况下,我会考虑在用户中嵌入EnrollmentInformation文档,而不是建立关系。特别是因为它无论如何都是一种无关紧要的关系。这样你可以做类似的事情:
User.where(:"enrollment_information.type_one" => true)
以下是嵌入一个文档的文档:http://mongoid.org/en/mongoid/docs/relations.html#embeds_one
作为附注,当您包含时,表示您也在提取相关文档。如果您启用了身份映射,它也将缓存在那里。 where子句仅对User对象的属性进行操作,因此,如果使用embedded,则可以访问嵌入的属性。
答案 1 :(得分:1)
如果您可以恢复阵列,这应该可行 -
User.find(EnrollmentInformation.where(:type_one => true).collect{|enrollmentinformation|
enrollmentinformation.user_id})