Mongoid查询数组字段
我在Mongoid中有一个Array
type
的category
字段。
防爆。 类别:[“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