通过mongoengin从文档中获取字段

2024-09-30 04:38:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个places集合,我试图从中提取地名以推荐给用户,但这需要很多时间,想知道是否有任何优化的方法。我使用mongoengineorm,数据库是mongodb。在

查询:

results = Place.objects(name__istartswith=query).only('name')

查询所需的时间非常少,只需几微秒。在

但现在当我试图从结果中获取名字时

^{pr2}$

这条线需要很长的时间,从3-5秒不等,长度约为2500。在

我尝试过使用scalar,但是现在当我在另一个列表上进行联合时,时间会增加。在

有没有更好的方法来访问名单。在


Tags: 方法用户name数据库onlyobjectsmongodb时间
1条回答
网友
1楼 · 发布于 2024-09-30 04:38:23

一个queryset在迭代之前不会被操作,因此results = Place.objects(name=query).only('name')返回一个尚未调用的queryset。当您迭代它时,会发生查询并通过线路发送数据。在

当通过pymongo运行时,查询速度慢吗?由于MongoEngine对象不需要它们,请尝试使用as_pymongo-这将返回原始字典。在

其他提示是确保查询的执行-使用索引-请参阅profiler文档。在

相关问题 更多 >

    热门问题