У меня есть требование, где мне нужно выполнить запрос MongoDB, например:
db.collection.find({ $or : [{"field1" : "value1"}, {"field2" : "value2"}],
$or : [{"field3" : "value3"}, {"field4" : "value4"}]})
т.е.
(field1 == value 1 or field2 == value2) and (field3 == value3 or field4
== value4)
Я хочу добиться этого с помощью цепочки критериев, потому что запрос получаетформируется динамически из разных частей кода.Но если я попытаюсь сделать что-то вроде следующего:
criteria = Collection.any_of({"field1" => "value1"}, {"field2" =>
"value2"})
criteria = criteria.any_of({"field3" => "value3"}, {"field4" => "value4"})
, я получу результирующий запрос, в котором все они объединены в один оператор $ или, например
db.collection.find({ $or : [{"field1" : "value1"}, {"field2" : "value2"},
{"field3" : "value3"}, {"field4" : "value4"}]})
Как достичь"а" из двух "any_of" с использованием цепочки критериев?