基于mongodb的持久字典
mongo_shelve的Python项目详细描述
现在的情况已经够够了,但现在的情况已经够了,现在的情况已经够够了,现在的情况已经够了,基于MongoDB的持久性词典的持久性词典的持久性词典的持久性词典的持久性词典的持久性词典的持久性词典的持久性词典的持久性词典的持久性词典的持久性词典的持久性词典的持久性词典的持久性词典的持久性词典的持久性词典的持久性词典的持久性词典的持久性词典的持久性词典的持久性词典的持久性词典的持久性词典的持久性词典的持久性词典的持久性词典的持久性已经够了。``收藏。
python包含了:mod:`shelve`模块,这是一个基于:mod:`dbm`的持久字典的实现,它反过来将信息保存在本地文本文件中。我自己也用过,但对于成百上千的参赛作品来说,表现还远远不够理想插入一个新条目需要将近一秒钟的时间。
一个简单的测试帮助我意识到用MongoDB速度替换:mod:`shelve`对于那个项目来说大约是x50或更好的速度,[f1].
另一个相关的优点是,好的MongoDB服务器包括安全选项、备份系统等,所以数据比在本地文件中更安全。
最后,我对多线程几乎一无所知,但是MongoDB似乎对并发访问有很好的支持,虽然我知道:mod:`shelve`没有。
project description
====
a class:class:`mongo_shelve`的实现为一个`mongodb<;https://www.mongodb.com>;``集合提供了一个类似于'dict'的接口。支持所有常用的“dict”操作另一方面,MongoDB集合的强大接口如“delete_many”被保留下来。有关详细信息,请参阅类文档。
我当前正在Windows上使用Python3.6。我没有在其他版本或平台上测试过此代码。
警告
==
要能够使用MongoDB,我们必须连接到MongoDB服务器。它可能是我们自己的机器、托管服务等。如果您是MongoDB新手,可以使用一些教程,`this<;https://www.hongkiat.com/blog/webdev-with-mongodb-part1/>;``就是其中之一。也有许多MongoDB托管服务提供大小合适的免费沙盒,不需要花一分钱就可以进行实验。
如果您安装了MongoDB,要在本地(在Windows中)提供服务,只需运行:
。代码::bash
mongod.exe--dbpath=<;database廑path>;
有关测试的警告
=======
要能够运行测试,我们需要一个mongodb服务器来连接(我知道没有更好的方法)。如果有,请告诉我)这些测试是根据本地服务器正在运行、构建与之连接的客户端、创建测试数据库/集合、填充它们、访问存储的信息而编写的,最后将它们全部擦除。
Usage Example
==
下面的示例表明本地MongoDB服务器正在运行(因此是IP 127.0.0.1),并且处于默认的27017端口中。
。代码::python
ms=mongo shelve(col=col,keyfield='filename')
#更新信息
ms['mybestjoke.txt']=dict(size=14732)
print(“存储的信息:%s”%ms['mybestjoke.txt'])
存储的是%s“%(键,数据))
小于1KB的文件。
ms.delete_many({'size':{“$lt”:1024})
准则:脚注
…[f1]我使用的是最不精致的“dbm.dumb”管理器。
理论上,如果使用伯克利的“dbm.ndbm”或gnu的“dmb.gnu”性能会更好,但当时我无法安装它们。
python包含了:mod:`shelve`模块,这是一个基于:mod:`dbm`的持久字典的实现,它反过来将信息保存在本地文本文件中。我自己也用过,但对于成百上千的参赛作品来说,表现还远远不够理想插入一个新条目需要将近一秒钟的时间。
一个简单的测试帮助我意识到用MongoDB速度替换:mod:`shelve`对于那个项目来说大约是x50或更好的速度,[f1].
另一个相关的优点是,好的MongoDB服务器包括安全选项、备份系统等,所以数据比在本地文件中更安全。
最后,我对多线程几乎一无所知,但是MongoDB似乎对并发访问有很好的支持,虽然我知道:mod:`shelve`没有。
project description
====
a class:class:`mongo_shelve`的实现为一个`mongodb<;https://www.mongodb.com>;``集合提供了一个类似于'dict'的接口。支持所有常用的“dict”操作另一方面,MongoDB集合的强大接口如“delete_many”被保留下来。有关详细信息,请参阅类文档。
我当前正在Windows上使用Python3.6。我没有在其他版本或平台上测试过此代码。
警告
==
要能够使用MongoDB,我们必须连接到MongoDB服务器。它可能是我们自己的机器、托管服务等。如果您是MongoDB新手,可以使用一些教程,`this<;https://www.hongkiat.com/blog/webdev-with-mongodb-part1/>;``就是其中之一。也有许多MongoDB托管服务提供大小合适的免费沙盒,不需要花一分钱就可以进行实验。
如果您安装了MongoDB,要在本地(在Windows中)提供服务,只需运行:
。代码::bash
mongod.exe--dbpath=<;database廑path>;
有关测试的警告
=======
要能够运行测试,我们需要一个mongodb服务器来连接(我知道没有更好的方法)。如果有,请告诉我)这些测试是根据本地服务器正在运行、构建与之连接的客户端、创建测试数据库/集合、填充它们、访问存储的信息而编写的,最后将它们全部擦除。
Usage Example
==
下面的示例表明本地MongoDB服务器正在运行(因此是IP 127.0.0.1),并且处于默认的27017端口中。
。代码::python
ms=mongo shelve(col=col,keyfield='filename')
#更新信息
ms['mybestjoke.txt']=dict(size=14732)
print(“存储的信息:%s”%ms['mybestjoke.txt'])
存储的是%s“%(键,数据))
小于1KB的文件。
ms.delete_many({'size':{“$lt”:1024})
准则:脚注
…[f1]我使用的是最不精致的“dbm.dumb”管理器。
理论上,如果使用伯克利的“dbm.ndbm”或gnu的“dmb.gnu”性能会更好,但当时我无法安装它们。