Ruby 如何使用mongoid查询嵌入式文档中的子类?
我有一个盒子,里面有很多不同类型的玩具:Ruby 如何使用mongoid查询嵌入式文档中的子类?,ruby,mongodb,mongoid,Ruby,Mongodb,Mongoid,我有一个盒子,里面有很多不同类型的玩具: class Box embeds_many :toys end class Toy field :name embedded_in :box end class Car < Toy end class Doll < Toy end 显然,我可以迭代每个玩具并提取toy.is_a?Car,但我正在寻找一个解决方案,如果有的话,它只使用内置的mongoid标准/查找器 这是个好问题。幸运的是,Mongoid用于在文档中
class Box
embeds_many :toys
end
class Toy
field :name
embedded_in :box
end
class Car < Toy
end
class Doll < Toy
end
显然,我可以迭代每个玩具并提取
toy.is_a?Car
,但我正在寻找一个解决方案,如果有的话,它只使用内置的mongoid标准/查找器 这是个好问题。幸运的是,Mongoid用于在文档中存储\u type
元属性来处理此类场景
这样你就可以在
Box.where('toys._type'=>'Car')
这就是全部只是为了完整性:如果你已经有了box对象,它将是
box.toys.where(_type:'Car')
谢谢你的帮助。
Box.where('toys._type'=>'Car')