Motorengine是一个很棒的库,用于使用mongodb进行异步数据库操作。但我想知道如何使用motorengine进行地理空间查询。 由于图书馆不支持地理字段。选项i使用的是电机2dspear指数。但如果我在motorengine的帮助下找到方法,那将是非常好的。
任何人都可以帮助我。
答案 0 :(得分:0)
我解决了这个问题。
from motorengine.document import Document
import pymongo
class BaseDocument(Document):
import pymongo
ASCENDING = pymongo.ASCENDING
DESCENDING = pymongo.DESCENDING
GEO2D = pymongo.GEOSPHERE
def __init__(self, alias=None, **kwargs):
indexes = self.__indexes__ if hasattr(self, "__indexes__") else []
if len(indexes) == 0:
return
def ensure_index(index, **spec):
self.objects.coll(alias).ensure_index(index, **spec)
for index_spec in indexes:
ensure_index([index_spec])
super(BaseDocument, self).__init__(**kwargs)
和使用它的索引。
class Team(BaseDocument):
__indexes__ = [('location', BaseDocument.GEO2D)]
name = StringField(required=True)
location = GeoPointField()
contact = StringField(required=True)