MongoDB-backed Python dict-like interface
Project description
So you are storing some key-values in a dict but your data became huge than your memory or you want to persist it on the disk? Then mongodict is for you!
As it uses MongoDB to store the data, you get all cool MongoDB things, like shardings and replicas.
mongodict is supported under Python 2.7 and Python 3.2.
Installation
As simple as:
pip install mongodict
Usage
As it uses collections.MutableMapping as its base, you just need to change the line which creates your dict. For instace, just replace:
>>> my_dict = {}
with:
>>> from mongodict import MongoDict >>> my_dict = MongoDict(host='localhost', port=27017, database='my_dict', collection='store')
and then use it like a normal dict:
>>> my_dict['python'] = 'rules' >>> print my_dict['python'] rules >>> del my_dict['python'] >>> print my_dict['python'] Traceback (most recent call last): File "<stdin>", line 1, in <module> File "mongodict.py", line 23, in __getitem__ raise KeyError KeyError >>> my_dict['spam'] = 'eggs' >>> my_dict['ham'] = 'damn' >>> for key, value in my_dict.items(): ... print '{} = {}'.format(key, value) ... spam = eggs ham = damn
Enjoy! :-)
Why not Redis?
Redis is “remote directory server” - it’s a great piece of software and can do the job if all your data fit on memory. By other side, MongoDB already have mature sharding and replica set features. So, if you need to store lots of key-value pairs that don’t fit on memory, mongodict can solve your problem.
Contributing
This software uses Semantic Versioning.
This software uses Test-Driven Development.
You can run the tests either with or without tox.
Without tox
This is the simplest approach: you’ll test only for one Python version. To do it, just execute:
mkvirtualenv --no-site-packages mongodict-without-tox pip install -r requirements/develop.txt make test
With tox
With tox you can test for more than one Python version (currently for 2.7 and 3.2). You just need to create a virtualenv, install and run it:
mkvirtualenv --no-site-packages tox-for-mongodict pip install tox tox
tox will create one virtualenv for each Python version, install requirements and then run the tests for each of them.
License
It’s licensed under GPL version 3.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.