2012-08-29 50 views
0

查詢的MongoDB我需要查詢的MongoDB像這樣的東西:需要使用PHP

("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")) ))

但是,這讓我的或覆蓋,所以我失去了對...

陷多一點之後,我組裝該代碼,這似乎是我所需要的,但無法正常工作或:

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
$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")) 
)); 
+0

可悲的是它不適合我這樣的工作...它不返回任何結果,我敢肯定,有超過1 ... –

+0

東西$存在或只有字符串「null」? – user956584

+0

「something」存在,但它可以具有空值,並且我需要匹配任何案例(null或選定值)的結果,並且它們也匹配任何「其他」案例(null或選定值)。 –