数组字段的 Mongoid 查询



我在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'])

最新更新