In db['TF']
我有大约 6000 万条记录。
我需要获取记录的数量。
如果我跑db['TF'].count()
,它立即返回。
如果我跑db['TF'].count_documents({})
,我花了很长时间才得到结果。
但是,那count
方法将被弃用。
那么,在使用时如何快速获取数量呢?count_documents
?我错过了一些论点吗?
我已阅读文档和代码,但没有找到任何结果。
多谢!
这不是关于 PyMongo 而是关于 Mongo 本身。
count
是 Mongo 原生函数。它并没有真正计算所有文档。每当您在 Mongo 中插入或删除一条记录时,它都会缓存集合中的记录总数。然后当你跑步时count
,Mongo 将返回该缓存值。
count_documents
使用查询对象,这意味着它必须循环遍历所有记录才能获得总计数。因为您没有传递任何参数,所以它将必须运行所有 6000 万条记录。这就是为什么它很慢。
基于@Stennie 评论
您可以在 PyMongo 3.7+ 中使用estimated_document_count() 返回基于集合元数据的快速计数。原始的 count() 已被弃用,因为根据是否提供查询条件,行为会有所不同(估计与实际计数)。新的驱动程序 API 更注重结果
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)