伟大的pymongo驱动程序周围整洁的odm包装
ognom的Python项目详细描述
文档:TOdo
ognom是mongodb的文档映射器的对象。目前ognom使用pymongo作为默认后端, 但如果需要的话,可以基于另一个驱动程序(例如asyncio-mongo)轻松实现自己的后端, 因为ognom中的序列化和存储逻辑是分离的。
支持python2.7+、python3.3+、pypy。
文档:TOdo
安装
pipinstallognom
测试
tox
功能
- 普通的python,没有依赖关系;
- 从版本1.0公开完整的pymongo api(!);
- 使用自己的api轻松编写自己的后端。
快速启动
fromognom.baseimportConnectionManager,Document,Collectionfromognom.fieldsimportStringField,IntFieldConnectionManager.connect({'main':{# ognom use aliases for databases to make it possible to use multiple db's per project'name':'birzha_main','args':['127.0.0.1:27017'],'kwargs':{'socketTimeoutMS':60000}},})classFoo(Document):objects=Collection(db_name='main'collection_name='my_foos'# collection name (by default 'foos')indexes=[{'index':[('bar',1),('baz',-1)],'background':True}])bar=StringField(required=True,default='baaar')baz=IntField(choices=[10,20,30,40,50])foo1=Foo.objects.create({'bar':'lalala'})assertFoo.objects.get({'bar':'lalala'}).id==foo1.idfoo2=Foo(bar='lololo',baz=10)assertfoo2.idisNonefoo2.save()assertfoo2.idisnotNonefoo2.remove()foos=Foo.objects.find({'bar':'lalala'})# not list but CursorWrapper!assertlen(list(foos))==1
贡献者
- 列夫·奥雷霍夫@lorehov
- 迈克尔·埃洛夫斯基@wronglink
- 萨德内杰@sardnej