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