2012-08-29 4 views
0

je dois interroger mongodb avec quelque chose comme ceci:besoin d'interroger MongoDB en utilisant php

("something" < X OR "something" = "nll") AND ("someother">X OR "someother"= "nll") AND z=$z AND s=1

J'ai essayé quelques petites choses, mais ne peut le faire fonctionner, ce que je » ai essayé:

find( array( '$or'=>array(array("something"=>array("$le",$X)),array("something"=>"nll")), '$or'=>array(array("someother"=>array("$ge",$X)),array("someother"=>"nll")) ))

Mais qui me obtenir le ou écrasé, donc je suis perdu sur ce ...

Après diggin un peu plus, je assemblé ce code qui semble être ce que je dois, mais ne fonctionne pas non plus:

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

Mais cela ne fonctionne pas comme il retourne aucun résultat et je sais pour sûr qu'il ya plus de 2 articles ce match sur le db. (100% certains)

Répondre

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

Malheureusement, il ne fonctionne pas pour moi comme ça ... il n'a retourné aucun résultat et je suis sûr qu'il ya plus de 1 ... –

+0

quelque chose existe $ ou est seulement la chaîne "null"? – user956584

+0

"quelque chose" existe, mais il peut avoir une valeur nulle, et j'ai besoin des résultats qui correspondent à l'un des cas (null ou la valeur sélectionnée) et ils correspondent également à tous les autres cas (null ou valeur sélectionnée) –

Questions connexes