Znalazłem jedną odpowiedź na to pytanie, pozwól mi teraz, jeśli jest lepsza.
Jak opisano tutaj, przypisz swoje obiekty do MongoDBManager - http://django-mongodb-engine.github.com/mongodb-engine/cool-stuff.html#included-mongodb-batteries
from django_mongodb_engine.contrib import MongoDBManager
class MyModel(models.Model):
objects = MongoDBManager()
Następnie możesz wykonywać nieprzetworzone zapytania w ten sposób:
MyModel.objects.raw_query({'loc' : {'$near' : [50,50]}})
Innym podejściem, jak sądzę, byłoby przejście bezpośrednio do pymongo:http://api.mongodb.org/python/1.10%2B/examples/geo.html
W końcu skończyło się na tym zapytaniu:
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