pymongo method of getting statistics for collection byte usage?
MongoDB应用程序常见问题解答提到短字段名称是一种可用于小型文档的技术。这使我开始思考,"反正是个小文件吗?"
我正在使用pymongo,有什么办法可以编写一些python来扫描集合,并了解用于字段描述符的字节与用于实际字段数据的字节之比?
我也很想知道每个文档的基本字节开销是多少。
没有内置的方法来获取BSON文档中用于键的空间与用于实际字段值的空间之比。但是,collstats和dbstats命令可以为您提供有关收集和数据库大小的有用信息。这是在pymongo中使用它们的方法:
1 2 3 4 5 6 7 8 9 10 | from pymongo import MongoClient client = MongoClient() db = client.test # print collection statistics print db.command("collstats","events") # print database statistics print db.command("dbstats") |
您总是可以尝试破解一些东西,以获得一个不错的估计。如果集合中的所有文档都具有相同的架构,则类似这样的东西还算不错:
现在d是用于存储字段名称的集合的总数据大小的比例。