2dsphere (pymongo.GEOSPHERE)インデックスタイプは、MongoDB2.4以降でのみ機能します。また、GeoJSON も使用します。 ポイントのフォーマット。最後に、MongoDBのgeoクエリ演算子は順序に依存するため、 SON $maxDistanceなどのオプションを使用する場合。これは、 $near を使用した例です。 :
>>> c = pymongo.MongoClient()
>>> points = c.dbtest.points
>>> points.ensure_index([("loc", pymongo.GEOSPHERE)])
u'loc_2dsphere'
>>> points.insert({'loc': {'type': 'Point', 'coordinates': [40, 5]}})
ObjectId('51b0e508fba522160ce84c3a')
>>> for doc in points.find({"loc" : SON([("$near", { "$geometry" : SON([("type", "Point"), ("coordinates", [40, 5])])}), ("$maxDistance", 10)])}):
... doc
...
{u'loc': {u'type': u'Point', u'coordinates': [40, 5]}, u'_id': ObjectId('51b0e508fba522160ce84c3a')}