Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何使用mongoid查询嵌入式文档中的子类?_Ruby_Mongodb_Mongoid - Fatal编程技术网

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')