我在Mongoid中有一个category
type
Array
字段。
例如类别: ["val1","val2","val3"]
现在我想用"类别:"["val1","val2"]查询这个模型,这样它就会向我返回合并
Model.where(category: "val1") and Model.where(category: "val2")
我可以为数组的每个元素单独执行此操作,但我想这会很慢,因为对于每个单独的元素,它将搜索所有文档。
我也尝试了Model.all_of({category: "val1"},{category: "val2"}).all
但这不起作用。
我应该怎么做?
在mongoid中,有"$in"运算符。所以你可以这样做:
Model.where(category: { '$in': ['val1', 'val2'] })
条件all_in
使其更简单:
Model.all_in(category: ['val1','val2'])
这有效
Model.where(:category.in => ['val1','val2'])
来自 Mongo Docs
或者另一个变体:
Model.in(category: ['val1','val2'])