Няма начин да съхраните обект във файл (база данни), без да го сериализирате. Ако данните трябва да се преместят от един процес в друг процес или към друг сървър, те ще трябва да бъдат сериализирани в някаква форма, за да бъдат предадени. Тъй като питате за MongoDB, данните ще бъдат абсолютно сериализирани в някаква форма, за да бъдат съхранени в базата данни MongoDB. Когато използвате MongoDB, това е BSON .
Ако всъщност питате дали ще има начин да съхраните по-сурова форма на Python обект в MongoDB документ, можете да вмъкнете Binary
поле в документ, който може да съдържа всякакви данни, които искате. Не може да се прави директно запитване по никакъв начин в тази форма, така че потенциално губите много от предимствата на използването на NoSQL база данни с документи като 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)})