我需要用这样的东西来查询mongodb:
("something" < X OR "something" = "nll")
AND
("someother">X OR "someother"= "nll") AND z=$z AND s=1
我尝试过一些东西,但无法让它发挥作用,这就是我尝试过的:
find(
array(
'$or'=>array(array("something"=>array("$le",$X)),array("something"=>"nll")),
'$or'=>array(array("someother"=>array("$ge",$X)),array("someother"=>"nll"))
))
但是这让我被OR覆盖了,所以我迷失了......
经过多次挖掘之后,我收集了这个似乎是我需要的代码,但是也没有用:
find( array('$and'=>array( array( '$or' => array( array("something"=>array('$gte'=>$X)),array("something"=>"nll"))), array('$or' => array( array("someother"=>array('$lte'=>$X)),array("someother"=>"nll")))),"Z"=>$z, "s"=>"1");
但这不起作用,因为它返回零结果,我确信在数据库上有超过2项匹配。 (100%确定)
答案 0 :(得分:0)
$range = array('$and' => array(
array('$or' => array(
array("something" => array( "$lte" => $X)),
array("something" => "null")),
array('$or' => array(
array("someother" => array("$gte" => $X)),
array("someother" => "null"))
));