Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
$geoNear
L'étape $geoNear d'agrégation renvoie les documents par ordre de proximité par rapport à un point spécifié. Il calcule la distance par rapport au point et inclut la distance dans les documents de sortie.
Paramètres
-
near: point à partir duquel calculer les distances, spécifié sous forme de coordonnées GeoJSON ou d'anciennes coordonnées. -
distanceField: nom du champ pour stocker la distance calculée. -
spherical: booléen indiquant s'il faut utiliser une géométrie sphérique (obligatoire pour les points GeoJSON). -
maxDistance: Facultatif. Distance maximale par rapport au point central. -
minDistance: Facultatif. Distance minimale par rapport au point central. -
query: Facultatif. Critères de filtre supplémentaires à appliquer. -
limit: Facultatif. Nombre maximum de documents à renvoyer. -
key: Facultatif. Champ à utiliser pour les requêtes géospatiales lorsque plusieurs index géospatiaux existent.
Exemple (MongoDB Shell)
L'exemple suivant montre comment utiliser la $geoNear scène pour rechercher les magasins les plus proches d'un emplacement donné.
Création d'exemples de documents
db.stores.createIndex({ location: "2dsphere" }); db.stores.insertMany([ { _id: 1, name: "Store A", location: { type: "Point", coordinates: [-122.4, 37.8] } }, { _id: 2, name: "Store B", location: { type: "Point", coordinates: [-122.5, 37.7] } }, { _id: 3, name: "Store C", location: { type: "Point", coordinates: [-122.3, 37.9] } } ]);
Exemple de requête
db.stores.aggregate([ { $geoNear: { near: { type: "Point", coordinates: [-122.4, 37.8] }, distanceField: "distance", spherical: true } } ]);
Sortie
[
{ _id: 1, name: 'Store A', location: { type: 'Point', coordinates: [ -122.4, 37.8 ] }, distance: 0 },
{ _id: 3, name: 'Store C', location: { type: 'Point', coordinates: [ -122.3, 37.9 ] }, distance: 13877.82 },
{ _id: 2, name: 'Store B', location: { type: 'Point', coordinates: [ -122.5, 37.7 ] }, distance: 15557.89 }
]
Exemples de code
Pour afficher un exemple de code relatif à l'utilisation de la phase d'$geoNearagrégation, choisissez l'onglet correspondant à la langue que vous souhaitez utiliser :