Mongo Query Builder Skip完全被忽略。错误?

时间:2013-01-04 02:36:14

标签: mongodb mongodb-php doctrine-mongodb

按照以下示例进行操作:http://docs.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/query-builder-api.html

我有:

$dm = $this->get('doctrine.odm.mongodb.document_manager');
$query = $dm->createQueryBuilder('MainClassifiedBundle:Listing')->field('residentialOrCommercial')->equals($residentialOrCommercial);
        if ($propertyType != 'All Property Types')
            {
            $query->field('propertyType')->equals($propertyType);
            }

        $query->field('askingPrice')->range($minPrice, $maxPrice)->field('coordinates')->geoNear((float)$longitude, (float)$latitude)->spherical(true);

                if($radius!=0)
                {
                      $query->maxDistance($radius);
                }
        $classifieds = $query->limit(5)->skip(2)->getQuery()->execute();

一切正常,但跳过场没有任何区别。无论我放1还是1000,我都得到相同的结果集。

我错过了什么?

更新:我还在另一个文档集上测试了这个,发现它有效。关于geoNear的一些东西让我不知所措。

1 个答案:

答案 0 :(得分:2)

geoNear是一个数据库命令,而不是查询运算符。因此,limit()和skip()修饰符不适用于它。有关详细信息,请参阅SERVER-3925

如果您想在MongoDB中看到此功能,请关注并投票支持Jira票。