gpt4 book ai didi

python - 有没有办法将python对象直接存储在mongoDB中而不序列化它们

转载 作者:IT老高 更新时间:2023-10-28 13:10:56 28 4
gpt4 key购买 nike

我在某处读到,您可以使用 BSON 将 python 对象(更具体地说是字典)作为二进制文件存储在 MongoDB 中。但是现在我找不到任何与此相关的文档。

有人知道这到底是怎么做到的吗?

最佳答案

没有办法将对象存储在文件(数据库)中而不对其进行序列化。如果数据需要从一个进程移动到另一个进程或另一个服务器,则需要以某种形式序列化以进行传输。由于您询问的是 MongoDB,因此数据绝对会以某种形式序列化,以便存储在 MongoDB 数据库中。使用 MongoDB 时为 BSON .

如果您实际上是在询问是否有办法在 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)})

关于python - 有没有办法将python对象直接存储在mongoDB中而不序列化它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18089598/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com