MongoDBでの地理空間クエリ
原文は Ellie Huxtable により に公開されました。 このブログを購読する
現在、MongoDBとその地理空間クエリでいろいろ試しているところです。今のところなかなか面白いので、PyMongoでどのように使っているかをちょっと書いてみようと思いました!
まずはおなじみのpip install pymongoが必要です。最初にMongoクライアントが必要ですが、これはとても簡単です
from pymongo import MongoClient
client = MongoClient()なかなか気が利いていて、デフォルトではMongoClientはmongodb://localhost:27017に接続します。
ただ、代わりに次のように書くのもいいでしょう
url = os.environ.get("MONGO_URL", "mongodb://localhost:27017")
client = MongoClient(url)地理空間検索の魔法を機能させるために、ドキュメントのフィールドにMongoDBのインデックスを作成する必要があります。ここでは2dsphereインデックスを作成します。
from pymongo import MongoClient, GEOSPHERE, DESCENDING
client = MongoClient()
db = client.foo
db.bar.create_index([("location", GEOSPHERE)])あとはドキュメントを挿入してクエリを実行するだけです :) locationフィールドだけを持つドキュメントを挿入してみます
db.bar.insert_one({
“location”: {
"coordinates" : [
51.4982563,
-0.0861183
],
"type" : "Point"
}
})locationフィールドはGeoJSONである必要があります。これは地理的特徴を表現するためのJSON標準で、ドキュメントの検索がとても簡単になります!
db.bar.find({
"location": {
"$near": {
"$geometry": {"type": "Point", "coordinates": [LAT, LONG]},
"$maxDistance": range,
}
}
})記事をランダムに読む
コメント
ログインしてコメントする