<?php
$m = new MongoClient( 'mongodb://localhost' );
$d = $m->selectDb( DATABASE );
$c = $d->selectCollection( COLLECTION );
$center = new GeoJSONPoint(
(float) $_GET['lon'],
(float) $_GET['lat']
);
$res = $c->aggregate( [
[ '$geoNear' => [
'near' => $center->getGeoJson(),
'distanceField' => 'distance',
'distanceMultiplier' => 1,
'maxDistance' => 1000,
'spherical' => true,
'query' =>
[ TAGS => 'amenity=post_box' ],
'limit' => 40,
) ),
[ '$sort' => [ 'distance' => 1 ] ],
) );