Thr*_*irl 11 mongodb pymongo mongodb-query pymongo-3.x
在db['TF']我大约有60万条记录。
我需要获取记录的数量。
如果我运行db['TF'].count(),它会立即返回。
如果我运行db['TF'].count_documents({}),那么在我得到结果之前需要很长时间。
但是,该count方法将被弃用。
那么,如何在使用时快速获取数量count_documents呢?有没有我错过的一些论点?
我已经阅读了文档和代码,但没有找到。
非常感谢!
Ami*_*ner 13
这不是关于 PyMongo,而是关于 Mongo 本身。
count是一个原生的 Mongo 函数。它并没有真正计算所有文件。每当您在 Mongo 中插入或删除记录时,它都会缓存集合中的记录总数。然后当您运行时count,Mongo 将返回该缓存值。
count_documents使用查询对象,这意味着它必须遍历所有记录才能获得总数。因为您没有传递任何参数,所以它必须运行所有 6000 万条记录。这就是它慢的原因。
基于@Stennie 评论
您可以在 PyMongo 3.7+ 中使用estimated_document_count() 返回基于集合元数据的快速计数。最初的 count() 已被弃用,因为根据是否提供了查询条件,行为会有所不同(估计与实际计数)。较新的驱动程序 API 更注重结果
| 归档时间: |
|
| 查看次数: |
11360 次 |
| 最近记录: |