我有一个要求,我需要运行如下所示的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"的"和"的方法是什么?