V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
Livid
V2EX  ›  Python

目前 MongoDB 有在 Python 上比较好的 ORM 实现么?

  •  
  •   Livid · 2014-04-13 19:05:27 +08:00 · 13367 次点击
    这是一个创建于 3669 天前的主题,其中的信息可能已经有所发展或是发生改变。
    类似 Storm 或者 SQLAlchemy 那样的?
    13 条回复    2015-11-27 10:14:49 +08:00
    est
        1
    est  
       2014-04-13 19:43:37 +08:00
    pymongodb 本身已经足够简单,个人觉得不需要orm了。
    zhy0216
        2
    zhy0216  
       2014-04-13 19:45:27 +08:00
    mongoengine
    Livid
        3
    Livid  
    MOD
    OP
       2014-04-13 19:50:43 +08:00
    @zhy0216 貌似是一个在逐渐被放弃的项目,或者,功能已经足够了?

    https://github.com/MongoEngine
    zhy0216
        4
    zhy0216  
       2014-04-13 20:02:40 +08:00
    @Livid 功能足够了, 有问题直接发issue, 作者回复很快
    oldcai
        5
    oldcai  
       2014-04-13 22:46:05 +08:00
    没有放弃吧,看commits也很多,之前用flask的时候用过,记得用起来比较方便。

    不过还是碰到bug了,不知道怎么修好了,然后对整体代码不熟悉,提交了后没有附上单元测试,没有被合并。 ^_^
    dcoder
        6
    dcoder  
       2014-04-13 23:25:56 +08:00
    @est 用了一段时间 PyMongo, 决定直接用 Node.js 得了,MongoDB 还是直接用 JS 方便
    guoqiao
        7
    guoqiao  
       2014-04-14 05:26:38 +08:00
    用过mongoengine, 功能上各种残废, 比django自带的orm差了太多了.
    onedayoneapple
        8
    onedayoneapple  
       2014-04-14 06:28:20 +08:00 via Android
    目前也就mongoengone能用用
    superisaac
        9
    superisaac  
       2014-04-14 11:21:37 +08:00
    我写过个简单的mongodb orm叫mongopie, 求试用。主要特点是单文件,类似django orm的概念。
    https://github.com/superisaac/mongopie
    文档几乎没有
    sdjl
        10
    sdjl  
       2014-04-14 11:59:21 +08:00
    我想问MongoDB稳定么
    xiawinter
        11
    xiawinter  
       2014-04-14 12:40:45 +08:00
    @sdjl 稳定了,3年了, 除了中间升级一次,换了一下replicate 方式,我没碰过他。 以至于升级之前我差点找不到 root 密码!
    reorx
        12
    reorx  
       2014-04-14 19:25:19 +08:00
    据我所知比较成熟的有 MongoEngine ( https://github.com/MongoEngine/mongoengine ) 和 MongoKit ( https://github.com/namlook/mongokit )。

    两者的设计思想完全不同。MongoEngine 是模仿 Django ORM 关系数据库的方式用各种 Field 进行严谨的字段定义,而 MongoKit 是用一个字典约束 document 的结构。相对而言,MongoKit 更加轻量、简洁,对字段的检查和限制更加宽松,并且我个人认为对于 MongoDB 这种本身就没有强制要求存储结构的数据库,MongoEngine 的做法是有违其设计哲学的,因此更推荐 MongoKit 一些。我自己在一些项目中使用了 MongoKit,没有遇到非常坑的问题。但是它的作者对它的维护不是非常勤,两年前有一个 issue 中就提到说现在的一些写法非常不 pythonic,要发布重构的版本,但是一直没什么动静,日常小版本的更新倒还是有的。

    P.S. 后来我自己重造了一个轮子: Simplemongo ( https://github.com/reorx/simplemongo ),借鉴的是 MongoKit 的设计思想,暂时还没有文档,但在实际的大型项目中使用过,测试用例也很完整,有兴趣的可以尝试下 :)
    hhstore
        13
    hhstore  
       2015-11-27 10:14:49 +08:00
    算是挖坟吧...
    最近在用 mongodb, 对 2 个主流的 ORM 都作了测试. MongoEngine ( https://github.com/MongoEngine/mongoengine ) 和 MongoKit ( https://github.com/namlook/mongokit )。

    感觉都不太好用.
    官方文档也都看了七七八八,总有些地方,用着不舒服.
    不知道此题回复的童鞋,都在实际项目里用的什么?
    stackoverflow 上也只是推荐这 2 个 ORM,感觉有些地方还是有坑.
    难不成要用 pymongo ?

    求回复...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5628 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 03:22 · PVG 11:22 · LAX 20:22 · JFK 23:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.