Motorengine 是一个很棒的库,用于使用 mongodb 进行异步数据库操作。但我想知道如何使用电机引擎进行地理空间查询。由于该库不支持地理字段。我的选项是使用电机 2dspear 索引。但是,如果我在motorengine的帮助下找到一种方法,那就太好了。
谁能帮我解决这个问题。
Motorengine 是一个很棒的库,用于使用 mongodb 进行异步数据库操作。但我想知道如何使用电机引擎进行地理空间查询。由于该库不支持地理字段。我的选项是使用电机 2dspear 索引。但是,如果我在motorengine的帮助下找到一种方法,那就太好了。
谁能帮我解决这个问题。
我解决了这样的问题。
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)