Nie ma sposobu na przechowywanie obiektu w pliku (bazie danych) bez jego serializacji. Jeśli dane muszą zostać przeniesione z jednego procesu do innego procesu lub na inny serwer, będą musiały zostać zserializowane w jakiejś formie, aby mogły zostać przesłane. Ponieważ pytasz o MongoDB, dane będą absolutnie serializowane w jakiejś formie, aby mogły być przechowywane w bazie danych MongoDB. W przypadku korzystania z MongoDB jest to BSON .
Jeśli rzeczywiście pytasz, czy istnieje sposób na przechowywanie bardziej surowej postaci obiektu Pythona w dokumencie MongoDB, możesz wstawić Binary
do dokumentu, który może zawierać dowolne dane. Nie można go w żaden sposób bezpośrednio przeszukiwać w tej formie, więc potencjalnie tracisz wiele korzyści wynikających z używania bazy danych dokumentów NoSQL, takiej jak 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)})