我有一个Box,有很多种类型的玩具:
class Box
embeds_many :toys
end
class Toy
field :name
embedded_in :box
end
class Car < Toy
end
class Doll < Toy
end
如果我找到了我想要的特定盒子对象,我如何查询它以找到汽车?
my_box.toys.where(??? Car ??? )
显然,我可以迭代每个玩具并提取toy.is_a? Car
,但我正在寻找一个解决方案,如果存在,只使用内置的mongoid标准/查找器。
答案 0 :(得分:2)
这是个好问题。幸运的是,Mongoid用于在文档中存储_type
元属性来处理这类场景
所以你可以通过
找到盒子里的汽车 Box.where('toys._type'=>'Car')
多数人