如何在mongoid中访问/选择特定的嵌入式文档?

时间:2013-03-23 01:23:53

标签: mongoid mongoid3

有更好的方法吗?

class User
    embeds_many :groups

    def group(group_id)
        gid = Moped::BSON::ObjectId(group_id)
        self.groups.each.detect{|group| group.id == gid}
    end
end

class Group
    embedded_in :user
end

我正以这种方式访问​​该群组:

User.new.group(group_id)

如果用户有1000个嵌入式组(假设)那么这是否意味着我将不得不迭代1000个?有没有更好的方式来访问特定的组?

1 个答案:

答案 0 :(得分:2)

您可以像普通模型一样查询groups的{​​{1}}属性。例如,如果您想通过其ID找到特定的User

Group

也可以使用my_user.groups.find(group_id) 查询:

where