몽고db를 교묘하게 이용하여 지리 공간 조회를 하다
모바일 개발에서 포지셔닝 기능을 자주 사용한다. 예를 들어 미단, 배고프냐, 고양이 눈 영화 등 앱은 모두 모바일 포지셔닝을 사용하고 자신의 지리적 위치 부근의 서비스, 정보를 찾아낸다.
지리적 위치 인덱스는 MongoDB가 사용자에게 이미 알려진 특성으로 그 구면(Spherical)과 평면(Flat) 두 가지 모델로 풍부한 주소 위치 표시 방식을 제공한다. 예를 들어 2d, 2dsphere와 GeoJSON 등이다. 모바일 앱, 예를 들어 지도 소프트웨어, 택시 소프트웨어, 배달 소프트웨어, MongoDB의 강력한 지리적 위치 인덱스 기능은 이를 가장 잘 선택한다.그 밖에 사물인터넷, 스마트 도시 등 분야에도 대량의 지리적 위치 관련 조작이 필요하다. 이것은 모두 MongoDB의 경기장이다.
이 글은 Mongodb를 데이터베이스로 하여 데이터베이스 등급에서 어떻게 포지셔닝 조회를 하는지 설명할 것이다.
예를 들어 우리는 앱을 만들어야 한다. 업체는 자신의 상품을 앱에 발표할 수 있고 사용자는 앱을 열어 자신이 가까운 상품에서 먼 곳까지 볼 수 있다.
만약 지리적 위치의 수요가 없다면 하기 쉽다. 직접 창고를 꽂고 창고를 조사하면 ok가 되지만 지리적 위치를 사용한다면 Mongodb의 일부 위치 기능을 사용해야 한다.
Mongodb는 지리적 공간 인덱스가 있는데 이를 이용하여 경위도를 계산할 수 있다. 다음은 이 기능을 어떻게 사용하는지 계속 소개한다.
다음은 Nodejs+mongose를 예로 들어볼게요.
1. Schema 만들기:
const mongoose = require( 'mongoose' );
let goodsSchema = new mongoose.Schema( {
name: String,
price: Number,
location: {
type: [ Number ],
index: {
type: '2dsphere',
sparse: true
}
}
}, {
collection: 'Goods'
} )
2. 모델 만들기 let goodsModel = mongoose.model(‘Goods', goodsSchema)
3. 데이터 삽입다음 데이터 형식에 따라 데이터베이스에 데이터를 삽입합니다.
{
"name":" ",
"price":12,
"location":[ , ]
}
4. 사용자 근처 데이터 보기
goodsModel.find( {
'location': {
$nearSphere: [
parseFloat( ),
parseFloat( )
],
$maxDistance: 1000
}
} ).limit(10).skip(0).lean().exec();
요약: 이번 주요 공유 위치 인덱스의 사용법은 매우 실용적인 기능입니다. 데모는 그렇게 손잡이를 만들지 않았지만 주요 골격이 나왔습니다. 자유롭게 발휘할 수 있습니다. 감사합니다!이상은 본문의 전체 내용입니다. 본고의 내용이 여러분의 학습이나 업무에 일정한 도움을 줄 수 있는 동시에 저희를 많이 지지해 주시기 바랍니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
레코드를 업데이트하고 업데이트 전에 동일한 레코드를 삭제하는 방법(nest js & mongoDB)ID로 레코드를 업데이트하고 싶지만 업데이트 전에 동일한 레코드에 이전에 저장된 데이터를 삭제하고 싶습니다. 프로세스는 무엇입니까? 컨트롤러.ts 서비스.ts 나는 이것을 해결하기 위해 이런 식으로 노력하고 있습니다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.