次の形式のクエリを作成したいと思います。
select * from some_table
where
(field1 = 'x' or field2 = 'y')
and
(field3 = 'z' or field4 = 'w')
ドキュメントを読んで、次のようになるはずだと思いましたMongoid
:
SomeTable.or({:field1 => 'x'}, {:field2 => 'y'})
.and # or is it .intersect?
.or({:field3 => 'z'}, {:field4 => 'w'})
しかし、それではうまくいきません。mongo セレクターは、単にすべてのフィールドの「$or」です。これを行う正しい方法は何ですか?ありがとう。
また、その逆もありがたいです。たとえば、このクエリを実行する方法は次のとおりです。
select * from some_table
where
(field1 = 'x' and field2 = 'y')
or
(field3 = 'z' and field4 = 'w')