Mongoidにcategory
type
のArray
フィールドがあります。
例カテゴリ:["val1"、 "val2"、 "val3"]
ここで、このモデルを `category:[" val1 "、" val2 "]でクエリして、次のマージを返すようにします。
Model.where(category: "val1")およびModel.where(category: "val2")
配列の要素ごとに個別に実行できますが、個々の要素ごとにすべてのドキュメントが検索されるため、処理が遅くなると思います。
Model.all_of({category: "val1"},{category: "val2"}).all
も試しましたが、機能しません。
どうすればよいですか?
モンゴイドには、「$ in」演算子があります。だからあなたはこれを行うことができます:
Model.where(category: { '$in': ['val1', 'val2'] })
Criteriaall_in
を使用すると、簡単になります。
Model.all_in(category: ['val1','val2'])
または別のバリアント:
Model.in(category: ['val1','val2'])