Mongodbによる地理空間クエリー
MongoDBは、分散ファイルに基づいて格納されるデータベースです.C++言語で作成されます.WEBアプリケーションに拡張性の高い高性能データストレージソリューションを提供することを目的としています.
前言
モバイル開発では、美団、お腹が空いたか、猫眼映画などのappのような位置決め機能がよく使われ、モバイル側の位置決めを使用して、自分の地理的な位置の近くにあるサービスや情報を検索します.
そこで、この記事ではMongodbをデータベースとして、データベースレベルでクエリーを位置決めする方法について説明します.
ぶんせき
例えば、私たちはappを作る必要があります.業者は自分の商品をappに公開することができ、ユーザーはappを開けて自分に近い商品から遠い商品を見ることができます.
地理的なニーズがなければ、簡単です.直接ライブラリを挿入してライブラリを調べるとokになりますが、地理的な場所を使用する場合はMongodbのいくつかの位置機能が必要です.
Mongodbには、経緯度の計算が可能な地理空間インデックスがあり、この機能の使用方法について説明します.
インプリメンテーション
次はNodejs+mongoseを例にとりますSchemaの作成: Modelの作成 挿入データ ユーザー付近のデータを見る
まとめ
今回は主に位置インデックスの使い方を共有し、非常に実用的な機能で、demoはそんなに手を握っていませんが、主な骨格が出てきて、自由に発揮することができます~
備考:これはバックグラウンドでやる必要があります.android、ios、webは位置決めサービスを使ってユーザーの経緯を見つけ、バックグラウンドに伝える必要があります.
転載先:https://www.cnblogs.com/Jarvin/p/5706554.html
前言
モバイル開発では、美団、お腹が空いたか、猫眼映画などのappのような位置決め機能がよく使われ、モバイル側の位置決めを使用して、自分の地理的な位置の近くにあるサービスや情報を検索します.
そこで、この記事ではMongodbをデータベースとして、データベースレベルでクエリーを位置決めする方法について説明します.
ぶんせき
例えば、私たちはappを作る必要があります.業者は自分の商品をappに公開することができ、ユーザーはappを開けて自分に近い商品から遠い商品を見ることができます.
地理的なニーズがなければ、簡単です.直接ライブラリを挿入してライブラリを調べるとokになりますが、地理的な場所を使用する場合はMongodbのいくつかの位置機能が必要です.
Mongodbには、経緯度の計算が可能な地理空間インデックスがあり、この機能の使用方法について説明します.
インプリメンテーション
次はNodejs+mongoseを例にとります
const mongoose = require( 'mongoose' );
let goodsSchema = new mongoose.Schema( {
name: String,
price: Number,
location: {
type: [ Number ],
index: {
type: '2dsphere',
sparse: true
}
}
}, {
collection: 'Goods'
} )
let goodsModel = mongoose.model(‘Goods’, goodsSchema)
:
{
"name":" ",
"price":12,
"location":[ , ]
}
goodsModel.find( {
'location': {
$nearSphere: [
parseFloat( ),
parseFloat( )
],
$maxDistance: 1000
}
} ).limit(10).skip(0).lean().exec();
まとめ
今回は主に位置インデックスの使い方を共有し、非常に実用的な機能で、demoはそんなに手を握っていませんが、主な骨格が出てきて、自由に発揮することができます~
備考:これはバックグラウンドでやる必要があります.android、ios、webは位置決めサービスを使ってユーザーの経緯を見つけ、バックグラウンドに伝える必要があります.
転載先:https://www.cnblogs.com/Jarvin/p/5706554.html