我在某处读到过,您可以使用 BSON 将 python 对象(更具体地说是字典)作为二进制文件存储在 MongoDB 中。但是现在我找不到任何与此相关的文档。
有人知道具体如何做到这一点吗?
没有办法在不序列化的情况下将对象存储在文件(数据库)中。如果数据需要从一个进程移动到另一个进程或另一台服务器,则需要以某种形式序列化才能传输。既然您询问的是 MongoDB,那么数据绝对会以某种形式序列化,以便存储在 MongoDB 数据库中。使用 MongoDB 时,BSON http://bsonspec.org.
如果您实际上是在询问是否有一种方法可以在 MongoDB 文档中存储更原始形式的 Python 对象,您可以插入Binary
字段到文档中,其中可以包含您想要的任何数据。它无法以这种形式以任何方式直接查询,因此您可能会失去使用 MongoDB 等 NoSQL 文档数据库的许多好处。
>>> from pymongo import MongoClient
>>> client = MongoClient('localhost', 27017)
>>> db = client['test-database']
>>> coll = db.test_collection
>>> # the collection is ready now
>>> from bson.binary import Binary
>>> import pickle
>>> # create a sample object
>>> myObj = {}
>>> myObj['demo'] = 'Some demo data'
>>> # convert it to the raw bytes
>>> thebytes = pickle.dumps(myObj)
>>> coll.insert({'bin-data': Binary(thebytes)})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)