문서 메뉴
문서 홈
/
MongoDB 매뉴얼
/ / /

지역 검색

이 페이지의 내용

  • 행동
  • 예제
geoSearch

중요

MongoDB 5.0에서 제거됨

MongoDB 5.0 은 더 이상 사용되지 않는 geoHaystack 인덱스와 geoSearch 명령을 제거합니다. 대신 2d 인덱스$geoNear 또는 지원되는 지리 공간적 쿼리 연산자 중 하나와 함께 사용합니다.

MongoDB 인스턴스를 5.0으로 업그레이드하고 featureCompatibilityVersion을 5.0 로 설정하면 기존의 모든 geoHaystack 인덱스가 삭제됩니다.

geoSearch 명령은 MongoDB의 haystack 인덱스 기능에 대한 인터페이스를 제공합니다. 이러한 인덱스는 다른 쿼리(예: 'haystack')를 기반으로 결과를 수집 한 후 위치 좌표를 기반으로 결과를 반환하는 데 유용합니다.

geoSearch 명령은 다음 필드가 포함된 문서 를 허용합니다.

필드
유형
설명
geoSearch
문자열
쿼리 collection입니다.
search
문서
문서를 필터링하는 쿼리입니다.
near
배열
점의 좌표입니다.
maxDistance
숫자
선택 사항. 지정된 점으로부터의 최대 거리입니다.
limit
숫자
선택 사항. 반환할 문서의 최대 개수.
readConcern
문서

선택 사항. 읽기 고려를 지정합니다.

MongoDB 3.6부터 readConcern 옵션의 구문은 다음과 같습니다. readConcern: { level: <value> }

가능한 읽기 고려 수준은 다음과 같습니다.

  • "local"이는 프라이머리 및 보조 노드에 대한 읽기 작업의 읽기 고려 수준입니다.

  • "available"입니다. 프라이머리 및 세컨더리에 대한 읽기 작업에 사용할 수 있습니다. "available"은 프라이머리 및 비 샤드형 세컨더리에 대해 "local"과 동일하게 동작합니다. 쿼리는 인스턴스의 가장 최근 데이터를 반환합니다.

  • "majority". WiredTiger 스토리지 엔진을 사용하는 복제본 세트에 사용할 수 있습니다.

  • "linearizable". primary의 읽기 작업에만 사용할 수 있습니다.

읽기 고려 수준에 대한 자세한 내용은 읽기 고려 수준을 참조하세요.

읽기 고려 수준에 대한 자세한 내용은 읽기 고려 수준을 참조하세요.

comment
어떤

선택 사항. 이 명령에 첨부할 사용자 제공 코멘트입니다. 설정되면 이 설명은 다음 위치에서 이 명령의 레코드와 함께 표시됩니다.

댓글은 유효한 모든 BSON types (문자열, 정수, 객체, 배열 등)이 될 수 있습니다.

달리 지정하지 않는 한 geoSearch 명령은 결과를 50 문서로 제한합니다.

geoSearch 은(는) 샤드 cluster에 대해 지원되지 않습니다.

geoSearch분산 트랜잭션 내에서 사용할 수 있습니다.

중요

대부분의 경우 분산 트랜잭션은 단일 문서 쓰기에 비해 더 큰 성능 비용이 발생하므로 분산 트랜잭션의 가용성이 효과적인 스키마 설계를 대체할 수는 없습니다. 대부분의 시나리오에서 비정규화된 데이터 모델 (내장된 문서 및 배열) 은 계속해서 데이터 및 사용 사례에 최적일 것입니다. 즉, 대부분의 시나리오에서 데이터를 적절하게 모델링하면 분산 트랜잭션의 필요성이 최소화됩니다.

추가 트랜잭션 사용 고려 사항(예: 런타임 제한 및 oplog 크기 제한)은 프로덕션 고려사항을 참조하세요.

다음 예를 고려하십시오.

db.runCommand({
geoSearch : "places",
near: [ -73.9667, 40.78 ],
maxDistance : 6,
search : { type : "restaurant" },
limit : 30
})

위의 명령은 collection places 의 좌표 [ -73.9667, 40.78 ] 로부터 최대 거리가 6단위인 최대 restauranttype 가 있는 모든 문서, 최대 30개의 결과를 반환합니다.

기본 읽기 문제 수준인 "local" 를 재정의하려면 readConcern 옵션을 사용하십시오.

복제본 세트에 대한 다음 작업은 대부분의 노드에 기록된 것으로 확인된 데이터의 가장 최근 복제본을 읽을 수 있도록 "majority"읽기 고려를 지정합니다.

참고

읽기 고려 수준에 관계없이 노드의 최신 데이터는 시스템에 있는 데이터의 최신 버전을 반영하지 않을 수 있습니다.

db.runCommand(
{
geoSearch: "places",
near: [ -73.9667, 40.78 ],
search : { type : "restaurant" },
readConcern: { level: "majority" }
}
)

단일 스레드가 자신의 쓰기를 읽을 수 있도록 하려면 복제본 세트의 프라이머리에 대해 "majority" 읽기 고려 및 "majority" 쓰기 고려를 사용합니다.

← 지리 공간 명령

이 페이지의 내용