Symfony2 Doctrine MongoDB geoNear按距离升序获取记录

时间:2015-09-08 05:25:21

标签: mongodb symfony doctrine-orm doctrine-odm

我正在尝试列出靠近我的搜索位置的记录。我得到了正确的结果。但我想按距离升序记录。但我的文件中没有距离属性。

请帮我解决这个问题。

我的输入数据就像

{
 "name": "xxxx",
 "address": "28 Acacia Road",
 "location": { "long": 83.2184815, "lat": 17.6868159 },
}

注意: 我的文档没有距离属性。

我的查询构建器

/**
 * Get nearby DOS  
 * 
 * @param integer $distance
 * @param double $longitude
 * @param double $latitude
 * @param float $earth_radius   | 6378.137 
 */ 
public function getListDOS($distance, $longitude, $latitude, $earth_radius)
{   
    $dm = $this->getDocumentManager();
    $qb = $dm->createQueryBuilder('ABCBundle:Document')
            ->field('location')
            ->geoNear($longitude,$latitude)
            ->maxDistance($distance/$earth_radius)
            ->spherical(true)
            ->distanceMultiplier($earth_radius)
            ;

    return $qb->getQuery()->execute()->toArray();
}

谢谢

0 个答案:

没有答案