sql >> Database >  >> NoSQL >> MongoDB

Is er een manier om python-objecten rechtstreeks in mongoDB op te slaan zonder ze te serialiseren?

Er is geen manier om een ​​object in een bestand (database) op te slaan zonder het te serialiseren. Als de gegevens van het ene proces naar het andere proces of naar een andere server moeten worden verplaatst, moeten ze in een of andere vorm worden geserialiseerd om te worden verzonden. Aangezien u naar MongoDB vraagt, zullen de gegevens absoluut in een of andere vorm worden geserialiseerd om te worden opgeslagen in de MongoDB-database. Bij gebruik van MongoDB is dit BSON .

Als je je echt afvraagt ​​of er een manier is om een ​​meer onbewerkte vorm van een Python-object in een MongoDB-document op te slaan, kun je een Binary invoegen. veld in een document dat alle gewenste gegevens kan bevatten. Het is op geen enkele manier direct opvraagbaar in die vorm, dus je verliest mogelijk veel van de voordelen van het gebruik van een NoSQL-documentdatabase zoals 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. Redis™-gegevens migreren met Redis-Shake

  2. Gaten vinden in enorme evenementenstromen?

  3. Eenvoudige verbinding met mongodb in de react-app

  4. Redis en opvragen van waarden