Neexistuje způsob, jak uložit objekt do souboru (databáze) bez jeho serializace. Pokud se data potřebují přesunout z jednoho procesu do jiného procesu nebo na jiný server, budou muset být v nějaké formě serializována, aby mohla být přenášena. Protože se ptáte na MongoDB, data budou absolutně serializována v nějaké formě, aby byla uložena v databázi MongoDB. Při použití MongoDB je to BSON .
Pokud se skutečně ptáte, zda by existoval způsob, jak uložit surovější formu objektu Python v dokumentu MongoDB, můžete vložit Binary
pole do dokumentu, který může obsahovat libovolná data, která chcete. V této podobě není žádným způsobem přímo dotazovatelný, takže potenciálně přicházíte o mnoho výhod používání databáze dokumentů NoSQL, jako je MongoDB.
>>> 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)})