La 2dsphere Le type d'index (pymongo.GEOSPHERE) ne fonctionne que dans MongoDB 2.4 et versions ultérieures. Vous allez également vouloir utiliser GeoJSON format pour vos points. Enfin, les opérateurs de requête géographique de MongoDB sont sensibles à l'ordre, vous devrez donc utiliser SON lors de l'utilisation d'options telles que $maxDistance. Voici un exemple utilisant $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')}