You are browsing a version that is no longer maintained.

Geospatial Queries

You can execute some special queries when using geospatial indexes like checking for documents within a rectangle or circle.

Mapping

First, setup some documents like the following:

<?php/** * @Document * @Index(keys={"coordinates"="2d"}) */class City{    /** @Id */    public $id;    /** @Field(type="string") */    public $name;    /** @EmbedOne(targetDocument=Coordinates::class) */    public $coordinates;}/** @EmbeddedDocument */class Coordinates{    /** @Field(type="float") */    public $x;    /** @Field(type="float") */    public $y;}

Near Query

Now you can execute queries against these documents like the following. Check for the 10 nearest cities to a given longitude and latitude with the near($longitude, $latitude) method:

<?php$cities = $this->dm->createQuery(City::class)    ->field('coordinates')->near(-120, 40)    ->execute();