数组字段的Mongoid查询

问题描述 投票:14回答:4

我在Mongoid中具有category typeArray字段。

例如类别:[“ val1”,“ val2”,“ val3”]

现在,我想使用`category:[“ val1”,“ val2”]来查询此模型,以便它返回我的合并

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

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

我也尝试过Model.all_of({category: "val1"},{category: "val2"}).all,但这不起作用。

我应该如何做?

ruby-on-rails mongoid
4个回答
28
投票

在蒙古语中,有'$ in'运算符。所以你可以这样做:

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

11
投票

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

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

7
投票

此有效

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

来自Mongo Docs


0
投票

或另一个变体:

Model.in(category: ['val1','val2'])
© www.soinside.com 2019 - 2024. All rights reserved.