オブジェクトをシリアル化せずにファイル(データベース)に格納する方法はありません。データをあるプロセスから別のプロセスまたは別のサーバーに移動する必要がある場合は、送信するために何らかの形式でシリアル化する必要があります。 MongoDBについて質問しているので、データはMongoDBデータベースに保存するために、何らかの形式で絶対にシリアル化されます。 MongoDBを使用する場合は、BSON です。 。
Pythonオブジェクトのより生の形式をMongoDBドキュメントに保存する方法があるかどうかを実際に尋ねている場合は、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)})