$maxDistance - Amazon DocumentDB

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.

$maxDistance

L'$maxDistanceopérateur d'Amazon DocumentDB est utilisé pour spécifier la distance maximale (en mètres) à partir d'un point GeoJSON à laquelle les documents doivent se trouver pour être inclus dans les résultats de la requête. Cet opérateur est utilisé conjointement avec l'$nearSphereopérateur pour effectuer des requêtes géospatiales.

Paramètres

  • $maxDistance: distance maximale (en mètres) par rapport au point de référence à laquelle les documents doivent se trouver pour être inclus dans les résultats de la requête.

Exemple (MongoDB Shell)

L'exemple suivant montre comment utiliser l'$maxDistanceopérateur dans Amazon DocumentDB pour rechercher toutes les capitales des États dans un rayon de 100 kilomètres de Boston.

Création d'exemples de documents

db.capitals.insert([ { state: "Massachusetts", city: "Boston", location: { type: "Point", coordinates: [-71.0589, 42.3601] } }, { state: "Rhode Island", city: "Providence", location: { type: "Point", coordinates: [-71.4128, 41.8239] } }, { state: "New Hampshire", city: "Concord", location: { type: "Point", coordinates: [-71.5383, 43.2067] } }, { state: "Vermont", city: "Montpelier", location: { type: "Point", coordinates: [-72.5751, 44.2604] } } ]);

Exemple de requête

db.capitals.find( { location: { $nearSphere: { $geometry: { type: "Point", coordinates: [-71.0589, 42.3601] }, $maxDistance: 100000 } } }, { state: 1, city: 1, _id: 0 } );

Sortie

[ { "state": "Rhode Island", "city": "Providence" }, { "state": "New Hampshire", "city": "Concord" } ]

Exemples de code

Pour afficher un exemple de code d'utilisation de la $maxDistance commande, choisissez l'onglet correspondant à la langue que vous souhaitez utiliser :

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