MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Czy istnieje sposób na przechowywanie obiektów Pythona bezpośrednio w mongoDB bez ich serializacji?

Nie ma sposobu na przechowywanie obiektu w pliku (bazie danych) bez jego serializacji. Jeśli dane muszą zostać przeniesione z jednego procesu do innego procesu lub na inny serwer, będą musiały zostać zserializowane w jakiejś formie, aby mogły zostać przesłane. Ponieważ pytasz o MongoDB, dane będą absolutnie serializowane w jakiejś formie, aby mogły być przechowywane w bazie danych MongoDB. W przypadku korzystania z MongoDB jest to BSON .

Jeśli rzeczywiście pytasz, czy istnieje sposób na przechowywanie bardziej surowej postaci obiektu Pythona w dokumencie MongoDB, możesz wstawić Binary do dokumentu, który może zawierać dowolne dane. Nie można go w żaden sposób bezpośrednio przeszukiwać w tej formie, więc potencjalnie tracisz wiele korzyści wynikających z używania bazy danych dokumentów NoSQL, takiej jak 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. Oplog włącz na samodzielnym mongod nie dla zestawu replik

  2. jak uruchomić zapytanie agregujące w kliencie mongodb na RockMongo lub mViewer

  3. Jak korzystać z Map/Reduce w MongoDB?

  4. DAO i wstrzykiwanie zależności, porady?

  5. Sails.js sprawdza zawartość przed przesłaniem plików do MongoDB za pomocą skipera (prawidłowe pliki, zmiana rozmiaru obrazu itp.)