各位在开发中怎么使用 mongodb?更倾向于用 orm 还是直接用语言中自带的驱动?

2014-09-25 09:34:11 +08:00
 eriale
因为mongodb的驱动已经比较方便,所以我目前是直接用驱动来做mongodb操作。

不过我觉得这样有点问题,没有在代码中明确指出文档的结构,如果一段时间不看代码,还要在代码中的mongodb操作语句去推测文档结构。另一个我感觉不好的就是一些序列化工具不好用了,大部分的序列化工具还是转成了语言中的对象,而不是转成dict。

大家在开发的时候有没有这种感觉呢?如果转成用orm来操作mongodb,现在的orm开发到什么成都了?有什么局限性吗?
6903 次点击
所在节点    程序员
10 条回复
pythoner
2014-09-25 09:40:03 +08:00
以在python项目里为例,我是先用mongoengine(ORM)定义好Models,业务逻辑中对性能要求不高或者需要做save操作的地方,使用mongoengine,因为它可以对数据做有一些有效性验证;在对性能要求比较高的地方,通常会直接用pymongo(python中的mongodb驱动)来提升性能
eriale
2014-09-25 09:45:49 +08:00
@pythoner 嗯,直接使用驱动,数据校验也是一个头痛的东西。我现在也在想是不是要换成你这样的方式来开发。
yueyoum
2014-09-25 10:41:22 +08:00
全部用 mongoengine吧, documents 复杂了, 分分钟把你搞晕
jiangzhuo
2014-09-25 10:55:52 +08:00
node在考慮性能的情況下 更傾向於語言自帶的驅動
davidli
2014-09-25 11:12:26 +08:00
不太喜欢 ORM, 所以一直直接用 motor 自带的方法
meta
2014-09-25 13:33:43 +08:00
关系数据库用orm是因为关系模型和对象模型差别太大,像mongodb这样的完全不必要再去做这种映射了吧。如果是为了记住文档结构去用orm,那么你的工程文案工作需要加强了。
sethverlo
2014-09-25 14:21:40 +08:00
目前在用 mongoid, 挺好用的…比如说 embedded 操作,还有 dirty tracking 都是很方便的操作…

缺点是用多了以后老记不住原生 mongodb 怎么写,ruby 的 map 也是太慢…

FYI: http://mongoid.org/en/mongoid/docs/documents.html
kzing
2014-09-25 15:10:57 +08:00
推荐一下mongokit, 在 pymongo 上进一步封装了, 简单易用, 唯快不破~

LINK: https://github.com/namlook/mongokit
ethego
2015-08-29 17:20:22 +08:00
有个问题,如果使用 orm ( mongoengine ),在修改了数据模型以后怎么迁移数据库?
wizardforcel
2018-08-14 15:42:21 +08:00
python 的话,用不用 orm 有区别嘛??只不过原来访问键值要用方括号,现在要用点。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/135554

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX