sql >> Databasteknik >  >> NoSQL >> MongoDB

Finns det ett sätt att lagra python-objekt direkt i mongoDB utan att serialisera dem

Det finns inget sätt att lagra ett objekt i en fil (databas) utan att serialisera det. Om data behöver flyttas från en process till en annan process eller till en annan server måste den serialiseras i någon form för att kunna överföras. Eftersom du frågar om MongoDB kommer data absolut att serialiseras i någon form för att lagras i MongoDB-databasen. När du använder MongoDB är det BSON .

Om du faktiskt frågar om det skulle finnas ett sätt att lagra en mer rå form av ett Python-objekt i ett MongoDB-dokument, kan du infoga en Binary i ett dokument som kan innehålla vilken data du vill. Det är inte direkt frågabart på något sätt i den formen, så du förlorar potentiellt många av fördelarna med att använda en NoSQL-dokumentdatabas 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. Redis + Node.js - hur hämtar jag värdena

  2. Listar användare för vissa DB med PyMongo

  3. mongoexport återvändande vetenskaplig (exponentiell) notation

  4. Skapa nycklar i bulk i Redis - ServiceStack C#