Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
$geoNear
La fase di $geoNear aggregazione restituisce i documenti in ordine di prossimità a un punto specificato. Calcola la distanza dal punto e include la distanza nei documenti di output.
Parametri
-
near: il punto da cui calcolare le distanze, specificato come coordinate GeoJSON o legacy. -
distanceField: Il nome del campo per memorizzare la distanza calcolata. -
spherical: valore booleano che indica se utilizzare la geometria sferica (obbligatorio per i punti GeoJSON). -
maxDistance: facoltativo. Distanza massima dal punto centrale. -
minDistance: facoltativo. Distanza minima dal punto centrale. -
query: facoltativo. Criteri di filtro aggiuntivi da applicare. -
limit: facoltativo. Numero massimo di documenti da restituire. -
key: facoltativo. Campo da utilizzare per l'interrogazione geospaziale quando esistono più indici geospaziali.
Esempio (MongoDB Shell)
L'esempio seguente dimostra l'utilizzo $geoNear dello stage per trovare i negozi più vicini a una determinata posizione.
Create documenti di esempio
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] } } ]);
Esempio di interrogazione
db.stores.aggregate([ { $geoNear: { near: { type: "Point", coordinates: [-122.4, 37.8] }, distanceField: "distance", spherical: true } } ]);
Output
[
{ _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 }
]
Esempi di codice
Per visualizzare un esempio di codice per l'utilizzo della fase di $geoNear aggregazione, scegli la scheda relativa alla lingua che desideri utilizzare: