Mongoid查询数组字段

我在Mongoid中有一个Array typecategory字段。

防爆。 类别:[“val1”,“val2”,“val3”]

现在我想用`category:[“val1”,“val2”]查询这个模型,这样它就会返回我的合并

Model.where(类别:“val1”)和Model.where(类别:“val2”)

我可以为数组的每个元素单独执行此操作,但这会很慢,因为对于每个单独的元素,它将搜索所有文档。

我也尝试过Model.all_of({category: "val1"},{category: "val2"}).all但是这Model.all_of({category: "val1"},{category: "val2"}).all都没有用。

我该怎么做?

在mongoid中,有’$ in’运算符。 所以你可以这样做:

 Model.where(category: { '$in': ['val1', 'val2'] }) 

您可以使用Criteria all_in使其更简单:

 Model.all_in(category: ['val1','val2']) 

这很有效

 Model.where(:category.in => ['val1','val2']) 

来自Mongo Docs