0

我需要用这样的东西查询 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");

但这不起作用,因为它返回零结果,并且我确定在 db 上匹配的项目超过 2 个。(100% 确定)

4

1 回答 1

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"))   
)); 
于 2012-08-29T15:22:28.773 回答