Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.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嵌套$or查询_Php_Mongodb_Mongodb Query - Fatal编程技术网

Php MongoDB嵌套$or查询

Php MongoDB嵌套$or查询,php,mongodb,mongodb-query,Php,Mongodb,Mongodb Query,Mongo条目的示例: array( 'name' => 'blog one', 'blogCategory' => array( 'displayAndLightMeasurement' => '1', 'LEDAndDisplayTestInstrument' => '0' ) ); 这样的查询很好: $blogInfoRaw = $collection->find(array('blogCategory

Mongo条目的示例:

array(
    'name' => 'blog one',
    'blogCategory' => array(
        'displayAndLightMeasurement' => '1',
        'LEDAndDisplayTestInstrument' => '0'
    )
);
这样的查询很好:

$blogInfoRaw = $collection->find(array('blogCategory' => array('displayAndLightMeasurement' => '1')));
当我尝试像这样进行
'$或'
查询时:

$blogInfoRaw = $collection->find(array('$or' => array('blogCategory' => array('displayAndLightMeasurement' => '1')),array('blogCategory' => array('LEDAndDisplayTestInstrument' => '1'))));
我得到这个错误:

$or requires nonempty array
我做错了什么?

您真的想用它来引用嵌入字段:

$blogInfoRaw = $collection->find(
    array(
       '$or' => array(
           array( 'blogCategory.displayAndLightMeasurement' => '1' ),
           array( 'blogCategory.LEDAndDisplayTestInstrument' => '1')
       )
    )
);
否则,您使用的符号意味着嵌入级别中的“唯一”元素是您指定的元素。这不是真的,因为有多个键。所以“点表示法”通过引用不同的键来解决这个问题

PHP数组表示法在这里没有帮助,但需要是一个包装的“真实”数组,如
[]
中所示


与官方MongoDB示例相比,发布一个
json\u encode
通常会有所帮助。

我现在明白了。工作完美。非常感谢。