Mongo shell使用bsonsize()方法来获取从DB检索的给定文档的BSON大小.
有没有办法使用PyMongo驱动程序获得相同的?我在文档中找到了bson模块,但我不清楚如何使用它来获取从DB检索的文档的大小.
根据@SSDMS建议(谢谢!),可以使用以下内容:
len(bson.BSON.encode(document))
我已经在我的数据库中测试了几个文档,比较了mongo shell和上面的Python方法的结果,得到了相同的结果:
在mongo shell:
> var doc1 = db.entities.findOne({'_id.id': '001'}) > var doc2 = db.entities.findOne({'_id.id': '002'}) > Object.bsonsize(doc1) 816 > Object.bsonsize(doc2) 819
在Python控制台:
>>> import bson >>> from pymongo import MongoClient >>> db = MongoClient('localhost', 27017) >>> doc1 = db['orion']['entities'].find_one({'_id.id': '001'}) >>> doc2 = db['orion']['entities'].find_one({'_id.id': '002'}) >>> len(bson.BSON.encode(doc1)) 816 >>> len(bson.BSON.encode(doc2)) 819