使用Python 3中的mongengine有效地检索数据(理想情况下一次完成)

时间:2016-09-03 11:25:07

标签: python mongodb mongoengine

让我们说我的类User继承自Document类(我正在使用Mongoengine)。现在,我想检索一些时间戳后注册的所有用户。这是我正在使用的方法:

def get_users(cls, start_timestamp):
    return cls.objects(ts__gte=start_timestamp)

在3秒内返回1000份文件。这非常慢。我在几秒内在SQL中完成了类似的查询。我是MongoDB和No-SQL的新手,所以我想我做的事情非常糟糕。

我怀疑检索速度很慢,因为它是分批完成的。我在某地读到,对于PyMongo,批量大小为101,但我不知道Mongoengine是否相同。

我可以更改批量大小,这样我就可以立即获取所有文件。我将大致知道将检索多少数据。

非常欢迎任何其他建议。

谢谢!

1 个答案:

答案 0 :(得分:3)

正如您所建议的那样,运行此查询无需花费3秒钟。然而,问题不在于pymongo驱动程序的性能,有些事情需要考虑: