gpt4 book ai didi

python - 索引会使 find_one() 更快吗?

转载 作者:行者123 更新时间:2023-12-01 04:37:00 24 4
gpt4 key购买 nike

如果我有一个 pymongo 查询,在一个包含大约 4000 个文档的集合中,如下所示:

mong  =  pymongo.Connection()['ASD_2']['APS2'] 
py_mong = mong.find_one({'plate':'123456'})

考虑到 .explain()["cursor"] 上不允许使用 .explain()["nscanned"]find_one() ,因此手头没有方法可以找出扫描的性质,有人能告诉我当我只使用 find_one() 时是否值得对集合建立索引吗?

最佳答案

是的,绝对。

我怎么知道?

首先,如果不这样做,那是完全 Not Acceptable 。人们可能会提示 find_one 令人惊讶且不必要的缓慢。与find相比,开发团队会修复它(否则就有被视为愚蠢的风险)。

其次,我检查了代码。实现正是您所期望的,这意味着 find_one只是 find 的包装:

def find_one(self, spec_or_id=None, *args, **kwargs):
if spec_or_id is not None and not isinstance(spec_or_id, dict):
spec_or_id = {"_id": spec_or_id}
for result in self.find(spec_or_id, *args, **kwargs).limit(-1):
return result
return None

(pymongo 版本 2.4.2)

关于python - 索引会使 find_one() 更快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31544930/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com