sql >> Databáze >  >> NoSQL >> MongoDB

Existuje způsob, jak ukládat objekty pythonu přímo v mongoDB bez jejich serializace

Neexistuje způsob, jak uložit objekt do souboru (databáze) bez jeho serializace. Pokud se data potřebují přesunout z jednoho procesu do jiného procesu nebo na jiný server, budou muset být v nějaké formě serializována, aby mohla být přenášena. Protože se ptáte na MongoDB, data budou absolutně serializována v nějaké formě, aby byla uložena v databázi MongoDB. Při použití MongoDB je to BSON .

Pokud se skutečně ptáte, zda by existoval způsob, jak uložit surovější formu objektu Python v dokumentu MongoDB, můžete vložit Binary pole do dokumentu, který může obsahovat libovolná data, která chcete. V této podobě není žádným způsobem přímo dotazovatelný, takže potenciálně přicházíte o mnoho výhod používání databáze dokumentů NoSQL, jako je 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. Načtení délky seznamu v MongoDB

  2. Vkládání dat do vnořeného pole v mongodb

  3. Udržujte data Redis naživu mezi docker-compose dolů a nahoru v kontejneru Docker

  4. Instalace MongoDB