使用 MongoDB 進行地理空間查詢
原文由 Ellie Huxtable 于 發布,訂閱此部落格
我最近一直在玩 MongoDB 和它的地理空間查詢。目前為止還蠻有趣的,所以想寫篇文章來分享我是怎麼搭配 PyMongo 使用的!
首先,當然要先執行 pip install pymongo。我們需要先建立一個 mongo client,這很簡單
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,
}
}
})隨機一篇部落格
留言
登入後參與討論