Tôi đã tìm thấy một câu trả lời cho câu hỏi này, hãy để tôi ngay bây giờ nếu có câu nào tốt hơn.
Như đã nêu ở đây, gán các đối tượng của bạn cho MongoDBManager - http://django-mongodb-engine.github.com/mongodb-engine/cool-stuff.html#included-mongodb-bataries
from django_mongodb_engine.contrib import MongoDBManager
class MyModel(models.Model):
objects = MongoDBManager()
Sau đó, bạn có thể thực hiện các truy vấn thô như sau:
MyModel.objects.raw_query({'loc' : {'$near' : [50,50]}})
Một cách tiếp cận khác mà tôi đoán sẽ là truy cập trực tiếp vào pymongo: http://api.mongodb.org/python/1.10%2B/examples/geo.html
Cuối cùng tôi đã kết thúc với truy vấn này:
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