$minDistance - Amazon DocumentDB

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

$minDistance

$minDistanceé um operador de busca usado em conjunto com $nearSphere ou $geoNear para filtrar documentos que estejam pelo menos na distância mínima especificada do ponto central. Esse operador é suportado no Amazon DocumentDB e funciona de forma semelhante à sua contraparte no MongoDB.

Parâmetros

  • $minDistance: A distância mínima (em metros) do ponto central para incluir documentos nos resultados.

Exemplo (MongoDB Shell)

Neste exemplo, encontraremos todos os restaurantes em um raio de 2 quilômetros de um local específico em Seattle, Washington.

Crie documentos de amostra

db.usarestaurants.insertMany([ { "state": "Washington", "city": "Seattle", "name": "Noodle House", "rating": 4.8, "location": { "type": "Point", "coordinates": [-122.3517, 47.6159] } }, { "state": "Washington", "city": "Seattle", "name": "Pike Place Grill", "rating": 4.5, "location": { "type": "Point", "coordinates": [-122.3412, 47.6102] } }, { "state": "Washington", "city": "Bellevue", "name": "The Burger Joint", "rating": 4.2, "location": { "type": "Point", "coordinates": [-122.2007, 47.6105] } } ]);

Exemplo de consulta

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

Saída

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

Exemplos de código

Para ver um exemplo de código para usar o $minDistance comando, escolha a guia do idioma que você deseja usar:

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