在pymongo中计算查询结果时,使用with_limit_and_skip = True会更快吗?

时间:2013-11-23 13:01:09

标签: mongodb pymongo

我正在进行查询,如果集合中至少有一行与查询匹配,我想知道所有内容,因此我将limit=1传递给find()。我关心的是返回光标的count()是否为> 0.使用count(with_limit_and_skip=True)还是count()会更快吗?直觉上我觉得我应该通过with_limit_and_skip=True,因为如果有一大堆匹配的记录,那么计数可以停在我的极限1。

也许这值得解释一下限制和跳过如何在mongodb / pymongo的掩护下工作。

谢谢!

1 个答案:

答案 0 :(得分:2)

你的直觉是正确的。这是with_limit_and_skip旗帜的重点。

使用with_limit_and_skip=False时,count()必须计算所有匹配的文档,即使您使用limit=1,这几乎可以保证较慢。

来自docs

  

返回此查询的结果集中的文档数。默认情况下不考虑limit()和skip() - 如果这是期望的行为,则将with_limit_and_skip设置为True。