伟大的pymongo驱动程序周围整洁的odm包装

ognom的Python项目详细描述


Build StatusLatest Version

文档: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

贡献者

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Rest DSL路由无法启动路由,因为同一端点不允许有多个使用者   jvm有没有像JConsole或VisualVM这样的工具可以告诉我“类、对象、引用变量在java中存储在哪里?”   java为什么我的列表中的所有元素看起来都一样?   java运行时。运行shell脚本的exec无法打开文件   JPopupMenu的JMenuItem的java热键   会话在Java中被覆盖   如何在java中去除字符串中的尖锐重音?   java Mockito监视一个接口,模拟它的默认方法,获取NullPointerException   javascript如何在jquery中禁用同一时间选择   将数组列表附加到现有CSV文件,但它会附加并清除存储在Java文件中的以前的数据   java从我的jar中访问pdf文件   java Sonar issue参数必须为非Null,但标记为可为Null   java Salesforce流式API:在网络故障之后和重新订阅之前获取事件   在Java 1.8.0_65上运行Play2.0应用程序时出现playframework错误   java为什么字母的ASCII由方法自动转换。toCharArray()?   java如何知道JDialog是否关闭?   java向服务器发送POST请求,服务器的响应为null,启动   java如何设置JTable中特定单元格的值?   ImagePlus中的java保存问题