$nearSphere - Amazon DocumentDB

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

$nearSphere

El $nearSphere operador de Amazon DocumentDB se utiliza para buscar documentos que se encuentran a una distancia específica de un punto geoespacial. Este operador es particularmente útil para consultas geoespaciales, como encontrar todos los restaurantes dentro de un radio determinado de una ubicación determinada.

Parámetros

  • $geometry: un objeto GeoJSON que representa el punto de referencia. Debe ser un Point objeto con coordinates campos type y.

  • $minDistance: (opcional) La distancia mínima (en metros) desde el punto de referencia que deben estar los documentos.

  • $maxDistance: (opcional) La distancia máxima (en metros) desde el punto de referencia que deben estar los documentos.

Ejemplo (MongoDB Shell)

En este ejemplo, encontraremos todos los restaurantes en un radio de 2 kilómetros (2000 metros) de una ubicación específica en Seattle, Washington.

Cree documentos de muestra

db.usarestaurants.insert([ { name: "Noodle House", location: { type: "Point", coordinates: [-122.3516, 47.6156] } }, { name: "Pike Place Grill", location: { type: "Point", coordinates: [-122.3403, 47.6101] } }, { name: "Seattle Coffee Co.", location: { type: "Point", coordinates: [-122.3339, 47.6062] } } ]);

Ejemplo de consulta

db.usarestaurants.find({ location: { $nearSphere: { $geometry: { type: "Point", coordinates: [-122.3516, 47.6156] }, $minDistance: 1, $maxDistance: 2000 } } }, { name: 1 });

Salida

{ "_id" : ObjectId("611f3da985009a81ad38e74b"), "name" : "Noodle House" } { "_id" : ObjectId("611f3da985009a81ad38e74c"), "name" : "Pike Place Grill" }

Ejemplos de código

Para ver un ejemplo de código para usar el $nearSphere comando, elija la pestaña del idioma que desee usar:

Node.js
const { MongoClient } = require('mongodb'); async function findNearbyRestaurants() { const client = await MongoClient.connect('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false'); const db = client.db('test'); const restaurants = db.collection('usarestaurants'); const result = await restaurants.find({ location: { $nearSphere: { $geometry: { type: "Point", coordinates: [-122.3516, 47.6156] }, $minDistance: 1, $maxDistance: 2000 } } }, { projection: { name: 1 } }).toArray(); console.log(result); client.close(); } findNearbyRestaurants();
Python
from pymongo import MongoClient def find_nearby_restaurants(): client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false') db = client.test restaurants = db.usarestaurants result = list(restaurants.find({ 'location': { '$nearSphere': { '$geometry': { 'type': 'Point', 'coordinates': [-122.3516, 47.6156] }, '$minDistance': 1, '$maxDistance': 2000 } } }, { 'name': 1 })) print(result) client.close() find_nearby_restaurants()