Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用于范围的MongoDB或运算符_Php_Mongodb_Doctrine Orm_Doctrine Odm - Fatal编程技术网

Php 用于范围的MongoDB或运算符

Php 用于范围的MongoDB或运算符,php,mongodb,doctrine-orm,doctrine-odm,Php,Mongodb,Doctrine Orm,Doctrine Odm,这是Im使用的范围: $Range1=array('$or'=>array( array( '$gte' => floatval($O_NLA), '$lte' => $N_NLA ), array( '$gte' => floatval($N_SLA), '$lte' => $O_SLA )) ); $Range2=array('$or'=>array(


这是Im使用的范围:

$Range1=array('$or'=>array(
                array( '$gte' =>  floatval($O_NLA), '$lte' => $N_NLA ),
                array( '$gte' =>  floatval($N_SLA), '$lte' => $O_SLA ))
                );
$Range2=array('$or'=>array(
                array( '$gte' =>  floatval($N_SLO), '$lte' => $O_SLO ),
                array( '$gte' =>  floatval($O_NLO), '$lte' => $N_NLO ))
                );
我的问题的一部分:

$finder=$reposit->findBy(
                                                array(
                                                'field1' => $Range1,
                                                'field2' => $Range2,
                                                'display'=>1
                                                ))->toArray();
“消息”:“localhost:27017:无效的运算符:$或”。。。。。(虽然时间很长)

在没有查询生成器的情况下,如何将$or运算符与条令一起使用

findBy([
    '$or' => [
        ['field1' => ['$gte' =>  floatval($O_NLA), '$lte' => $N_NLA]],
        ['field1' => ['$gte' =>  floatval($N_SLA), '$lte' => $O_SLA]],
        ['field2' => ['$gte' =>  floatval($N_SLO), '$lte' => $O_SLO]],
        ['field2' => ['$gte' =>  floatval($O_NLO), '$lte' => $N_NLO]]
    ]
    , 'display' => 1
])
或者实际上:

findBy([
    '$and' => [
        ['$or' => [
            ['field1' => ['$gte' =>  floatval($O_NLA), '$lte' => $N_NLA]],
            ['field1' => ['$gte' =>  floatval($N_SLA), '$lte' => $O_SLA]],
        ]],
        ['$or' => [
            ['field2' => ['$gte' =>  floatval($N_SLO), '$lte' => $O_SLO]],
            ['field2' => ['$gte' =>  floatval($O_NLO), '$lte' => $N_NLO]]
        ]]
    ]
    , 'display' => 1
])
根据你的问题更准确地说

因为
$或
在包含类似
find()
的数组的条件下工作