MongoDB的最小Python ODM

nanomongo的Python项目详细描述


nanomongo是python的最小mongodb对象文档映射器。 它并不试图成为一个功能完整的odm,但是如果您愿意的话 在python字典中使用pymongoapi,通常会发现 编写验证器和pymongo.Collectionwrappers,nanomongo 可能适合你的需要。

NanoMongo拥有完整的测试覆盖范围。

快速链接Source (github)-Documentation (rtd)-Packages (PyPi)

0.4版:实用程序方法dbref_field_gettersBaseDocument.get_dbref 和错误修复Python23 text type compatibility

version 0.3:nanomongo现在与python2兼容(具有语法差异 定义文档时,请参阅文档)

https://travis-ci.org/eguven/nanomongo.png

功能

  • 单格式Field定义,带有类型检查和一些常见的 选项,如requireddefaultauto_update
  • pymongo-相同的索引定义
  • 可选dot_notation
  • '$set'和^{tt10}的赋值和删除(增量)跟踪$ 以及原子更新;您可以插入或更新
  • '$addToSet'onDocument
  • 即将到来的'$push''$pull'功能性
# rough example
import pymongo
from nanomongo import Field, BaseDocument, Index

client = pymongo.MongoClient()

class MyDoc(BaseDocument, dot_notation=True, client=client, db='dbname'):
    foo = Field(str)
    bar = Field(int, required=False)

    __indexes__ = [
        Index('foo'),
        Index([('bar', 1), ('foo', -1)], unique=True),
    ]

doc = MyDoc(foo='L33t')
doc.bar = 42
doc.insert()

Doc.find_one({'foo': 'L33t'})

nanomongo与python23兼容,我打算同时支持pymongo和motor 在引擎盖下透明。

欢迎您的贡献和见解!

Author:Eren Güven (GitHub, Twitter)
License:Apache Software License

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

推荐PyPI第三方库


热门话题
java文件分块,获取长度字节   java嵌入式Tomcat不执行jsf页面   java我的数据库中有2个实体,但hibernate返回其中6个。   java如何基于逗号拆分字符串   java取消已经运行的CompletableFutures的预期模式是什么   java如何在informix中从另一个数据库复制表ddl和数据   为什么图片是黑色的?   java根据字符串数组中的单词筛选列表   Java8的集合。平行流有效吗?   Kotlin中的java静态内部类   java如何在GUI中生成一列字符串   javafx如何正确使用高对比度主题?   带空格的javascript Httpurlconnection参数   java如何设置GridBagLayout的约束   java如何在一个线程可能尚未初始化时关闭另一个线程   java将简单时间格式转换为特殊时间格式(hhmmt)   安卓/java阵列重复过滤器的问题   java在队列的链接实现下,入队和出队是如何工作的   java更新sql外键约束