Php MongoDB嵌套$or查询
Mongo条目的示例: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
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
通常会有所帮助。我现在明白了。工作完美。非常感谢。