MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Има ли начин да съхранявате Python обекти директно в mongoDB, без да ги сериализирате

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да регистрирам заявките, изпълнени от Spring Data MongoDB?

  2. Текстов индекс със заместващи символи и наследени схеми

  3. Mongoose обединява две колекции и получава само определени полета от обединената колекция

  4. Агрегиране на MongoDb за филтриране на списък въз основа на идентификатори, присъстващи в обект на масив от всички документи от същата колекция

  5. Flask-PyMongo collMod