我有一个places集合,我试图从中提取地名以推荐给用户,但这需要很多时间,想知道是否有任何优化的方法。我使用mongoengineorm,数据库是mongodb。在
查询:
results = Place.objects(name__istartswith=query).only('name')
查询所需的时间非常少,只需几微秒。在
但现在当我试图从结果中获取名字时
^{pr2}$这条线需要很长的时间,从3-5秒不等,长度约为2500。在
我尝试过使用scalar
,但是现在当我在另一个列表上进行联合时,时间会增加。在
有没有更好的方法来访问名单。在
一个queryset在迭代之前不会被操作,因此
results = Place.objects(name=query).only('name')
返回一个尚未调用的queryset。当您迭代它时,会发生查询并通过线路发送数据。在当通过pymongo运行时,查询速度慢吗?由于MongoEngine对象不需要它们,请尝试使用as_pymongo-这将返回原始字典。在
其他提示是确保查询的执行-使用索引-请参阅profiler文档。在
相关问题 更多 >
编程相关推荐