1

按照以下示例: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 的一些东西是让我搞砸的东西。

4

1 回答 1

2

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

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

于 2013-01-08T00:14:47.667 回答