sql >> Database teknologi >  >> NoSQL >> MongoDB

Er der en måde at gemme python-objekter direkte i mongoDB uden at serialisere dem

Der er ikke en måde at gemme et objekt i en fil (database) uden at serialisere det. Hvis dataene skal flyttes fra en proces til en anden proces eller til en anden server, skal de serialiseres i en eller anden form for at blive transmitteret. Da du spørger om MongoDB, vil dataene absolut blive serialiseret i en eller anden form for at blive gemt i MongoDB-databasen. Når du bruger MongoDB, er det BSON .

Hvis du rent faktisk spørger, om der ville være en måde at gemme en mere rå form af et Python-objekt i et MongoDB-dokument, kan du indsætte en Binary ind i et dokument, som kan indeholde alle data, du ønsker. Det kan ikke forespørges direkte på nogen måde i den form, så du mister potentielt mange af fordelene ved at bruge en NoSQL-dokumentdatabase som 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)})


  1. MongoDb aggregering $lookup med udenlandske _id'er i arrays

  2. Hvordan kan jeg udføre kommandoer i redis uden at få noget svar overhovedet?

  3. Stream forespørgselsresultater med den oprindelige mongoDB-driver til node

  4. Påmindelseskommando ved hjælp af MongoDB discord.py