我可以精细地进行边界框位置查询,如下所示:
$cursor = $coll->find(array('loc' => array('$within' => array('$box' => $box))));
另一个基本查询有效:
$cursor = $coll->find(array('type' => $filter));
但是当我尝试将两者合并到一个新查询中时,它不起作用:
$cursor = $coll->find(array(
array('loc' => array('$within' => array('$box' => $box))),
array('type' => $filter)
));
我是否未正确处理查询字符串?
你的语法不正确,你应该简单地做:
$cursor = $coll->find(array(
'loc' => array('$within' => array('$box' => $box)),
'type' => $filter,
));
即,有一个包含所有查询部分的数组。