Mongo shell 有 the bsonsize() method 来获取从数据库中检索到的给定文档的 BSON 大小。

有没有办法使用 PyMongo 驱动程序获得相同的结果?我在文档中找到了 bson module 但我并不完全清楚如何使用它来获取从 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

关于python - 从数据库中检索到的文档的 BSON 对象大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38476377/

10-16 22:50