【问题标题】:Mongo ODM near query does not populate distance property. It is null?Mongo ODM near 查询不填充距离属性。它是空的吗?
【发布时间】:2012-10-03 00:11:46
【问题描述】:

根据 Mongo ODM 应该能够在近距离查询后获得距离:

http://docs.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/geospatial-queries.html#distance

当我使用文档中显示的近处查询时,我可以获得结果,但距离永远不会添加。

这是我的查询:

 $query = $dm->createQueryBuilder('SomeBundle:Blah')
        ->select('id', 'name', 'distance', 'propertyType', 'squareFootage')->field('coordinates')->near($latitude, $longitude);

$results = $query->getQuery()->execute();


foreach ($results as $city) {
    echo $city->name.': '.$city->distance."\n";
}

我的距离属性设置为:

   /** @MongoDB\Distance */
    public $distance;

我没有得到任何结果。 Mongo ODM 有错误吗?

【问题讨论】:

  • 尝试提取mongo查询并尝试通过控制台查询。 (用于调试)

标签: php mongodb symfony doctrine-mongodb


【解决方案1】:

而不是使用

$query->near($latitude, $longitude);

你需要使用

$query->geoNear($latitude, $longitude)

如果你想填充距离。

【讨论】:

  • 它是 $query->geoNear($longitude, $latitude);如果索引是球形的,则为正确的距离值
猜你喜欢
  • 2020-07-03
  • 1970-01-01
  • 1970-01-01
  • 2014-05-13
  • 1970-01-01
  • 1970-01-01
  • 2014-06-19
  • 2015-08-06
  • 1970-01-01
相关资源
最近更新 更多