Я нашел один ответ на этот вопрос, позвольте мне сейчас, если есть лучший.
Как указано здесь, присвойте свои объекты MongoDBManager - http://django -mongodb-engine.github.com / mongodb-engine / cool-stuff.html # includes-mongodb-battery
from django_mongodb_engine.contrib import MongoDBManager
class MyModel(models.Model):
objects = MongoDBManager()
Затем вы можете выполнять необработанные запросы, например так:
MyModel.objects.raw_query({'loc' : {'$near' : [50,50]}})
Другой подход, я думаю, состоит в том, чтобы перейти непосредственно к пимонго:
http://api.mongodb.org/python/1.10%2B/examples/geo.html
Наконец я закончил с этим запросом:
nearest = MyModel.objects.raw_query(
{'loc' : {
'$within' :{ #within .05 degrees of lat/lon
'$center' : [{'long' : long,'lat' : lat}, .05]
}
})[:10] #get up to 10 results