我正在进行查询,如果集合中至少有一行与查询匹配,我想知道所有内容,因此我将limit=1
传递给find()
。我关心的是返回光标的count()是否为> 0.使用count(with_limit_and_skip=True)
还是count()
会更快吗?直觉上我觉得我应该通过with_limit_and_skip=True
,因为如果有一大堆匹配的记录,那么计数可以停在我的极限1。
也许这值得解释一下限制和跳过如何在mongodb / pymongo的掩护下工作。
谢谢!
答案 0 :(得分:2)
你的直觉是正确的。这是with_limit_and_skip
旗帜的重点。
使用with_limit_and_skip=False
时,count()
必须计算所有匹配的文档,即使您使用limit=1
,这几乎可以保证较慢。
来自docs:
返回此查询的结果集中的文档数。默认情况下不考虑limit()和skip() - 如果这是期望的行为,则将with_limit_and_skip设置为True。