1

我可以很好地进行边界框位置查询,如下所示:

$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)

)); 

我是否错误地处理了查询字符串?

4

1 回答 1

1

您的语法不正确,您应该这样做:

$cursor = $coll->find(array(
    'loc' => array('$within' => array('$box' => $box)),
    'type' => $filter,
)); 

即,有一个包含所有查询部分的数组。

于 2012-04-17T09:03:14.717 回答