在 Python 3 中使用 mongengine 高效地检索数据(理想情况下全部在一批中)

Efficiently retrieve data (all in one batch ideally) with mongengine in Python 3

假设我有 class 继承自文档 class 的用户(我正在使用 Mongoengine)。现在,我想检索在某个时间戳后注册的所有用户。这是我使用的方法:

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

3秒返回1000个文档。这非常慢。我在几毫秒内在 SQL 中完成了类似的查询。一般来说,我是 MongoDB 和 No-SQL 的新手,所以我想我做错了什么。

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

我可以更改批量大小吗,这样我就可以一次获取所有文档。我将大致知道总共将检索多少数据。

非常欢迎任何其他建议。

谢谢!

正如您所建议的那样,运行 这个查询不可能花费 3 秒。但是,问题不是 pymongo 驱动程序的性能问题,需要考虑一些事项: