MongoDBの地理空間データをクエリする方法
MongoDBでは、地理空間インデックスを使用して、地理的な位置をクエリすることができます。地理的な位置のクエリを実行するには、まずMongoDBに地理空間インデックスを作成する必要があります。
地理空間インデックスを用いて位置情報を検索する例を以下に示します。
- ジオ空間インデックスを作成します。
db.collection.createIndex({ location: "2dsphere" })
locationという名前の地理空間インデックスが作成されます。
- 位置情報を含むドキュメントを挿入します
db.collection.insertOne({
name: "Place 1",
location: {
type: "Point",
coordinates: [longitude, latitude]
}
})
なお、記載のlongitude、latitudeはそれぞれ緯度、経度を表します。
- 近くの場所を探す:
db.collection.find({
location: {
$near: {
$geometry: {
type: "Point",
coordinates: [longitude, latitude]
},
$maxDistance: distanceInMeters
}
}
})
上記の例では、longtitudeとlatitudeは自分が知りたい場所の基準点の経度と緯度、distanceInMetersは距離の上限(メートル単位)です。
こうすると、地理空間インデックスを使用して地理的位置に関するクエリを実行できる。現実的な用途では、このクエリ条件をさらに最適化および調整する必要があることに注意してください。