$maxDistance - Amazon DocumentDB

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

$maxDistance

Amazon DocumentDB의 $maxDistance 연산자는 문서가 쿼리 결과에 포함되어야 하는 GeoJSON 지점으로부터 최대 거리(미터)를 지정하는 데 사용됩니다. 이 연산자는 $nearSphere 연산자와 함께 사용하여 지리 공간 쿼리를 수행합니다.

파라미터

  • $maxDistance: 문서가 쿼리 결과에 포함되어야 하는 참조 지점과의 최대 거리(미터)입니다.

예제(MongoDB 쉘)

다음 예제에서는 Amazon DocumentDB에서 $maxDistance 연산자를 사용하여 보스턴에서 100킬로미터 이내에 있는 모든 주 수도를 찾는 방법을 보여줍니다.

샘플 문서 생성

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] } } ]);

쿼리 예제

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

출력

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

코드 예제

$maxDistance 명령을 사용하기 위한 코드 예제를 보려면 사용하려는 언어의 탭을 선택합니다.

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()