mongodb支持的python类dict接口
mongodict的Python项目详细描述
所以您将一些键值存储在dict中,但是您的数据变得比 你的内存还是要保存在磁盘上?那么mongodict就是 你!
当它使用MongoDB来存储数据时,您会发现 MongoDB一些东西,比如碎片和复制品。它使用 python标准库中的pickle模块 序列化/反序列化数据,并将所有数据存储为MongoDB中的bson.binary。 您还可以提供另一个编解码器(序列化器/反序列化器)。
mongodict在 Python 2.7.5和 Python 3.3.2。
安装
简单到:
pip install mongodict
用法
因为它使用 collections.MutableMapping 作为它的基础,您只需要更改创建dict的行。 对于Instace,只需更换:
>>> my_dict = {}
使用:
>>> from mongodict import MongoDict >>> my_dict = MongoDict(host='localhost', port=27017, database='my_dict', collection='store')
然后像平常一样使用它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 82, in __getitem__ raise KeyError(key) KeyError: u'python' >>> my_dict['spam'] = 'eggs' >>> my_dict['ham'] = 'damn' >>> for key, value in my_dict.items(): ... print '{} = {}'.format(key, value) ... spam = eggs ham = damn
如果要使用其他编解码器,则应传递序列化和反序列化 初始化过程中类的函数。例如,要使用json:
>>> import json >>> json_dict = MongoDict(host='localhost', port=27017, database='json_dict', collection='store', codec=(json.dumps, json.loads)) >>> # use json_dict as usual
享受吧!:-)
身份验证
如果要使用MongoDB对数据库的身份验证,MongoDict 连接到,只需提供一个auth参数,如下所示 示例:
from mongodict import MongoDict my_dict = MongoDict(host='localhost', port=27017, database='mydb', collection='mongodict', auth=('my username', 'my password'))
为什么不去Redis?
Redis是“远程目录服务器”-这是一个很好的部分 如果所有的数据都存储在内存中,就可以完成这项工作。在另一边, MongoDB已经有成熟的分片和副本集 特征。所以,如果需要存储大量不适合的键值对 内存,mongodict可以解决 问题。
贡献
- 这个软件使用Semantic Versioning。
- 这个软件使用 Test-Driven Development。
你可以在有或没有的情况下运行测试 tox。
无毒物
这是最简单的方法:只测试一个python版本。待办事项 它,只需执行:
mkvirtualenv --no-site-packages mongodict-without-tox pip install -r requirements/develop.txt make test
许可证
它是根据GPL version 3授权的。