数据库 Rails 与 MongoDB 真的很契合么?

cassiuschen · 2013年12月26日 · 最后由 aptx4869 回复于 2013年12月27日 · 6710 次阅读

私以为Javaacript因为对象默认Key=>Value的模式所以像NodeJS就与MongoDB契合得很好…Rails从一开始就引入了ActionRecord并明确指出是为支持CRUD功能数据库设计的,像MongoDB这样的NoSQL在Rails里用起来总觉得怪怪的…没准为Sinatra服务会感觉好受一些……

我一直坚持用psql,尤其是出了hstore功能后psql感觉没啥短板,而且migration读起来很舒服…可能是我一直不了解Mongo吧不知道为啥这么多人用……

共收到 17 条回复

mongoid的api设计不如ar,mongodb要说优点的话,增改字段不需要数据迁移,因为本身是内存数据库所以不需要提早引入缓存 说白了,就是开发快

pg 9.3 引入JSON类型和plv8以后确实可以不用MongoDB了

#1楼 @jasl MongoDB开发慢,好不好...

rails里用Mongodb就不会用active_record了啊。不是应该用mongoid么。。虽然mongoid看他说也是基于active_record的。。但是为何要和active_record比。。

#3楼 @bhuztez 遇到事务就得头疼的要死,简单情境很好啊

sinatra 我也是用 pg,配合 sequel 也能实现 migrate 功能其实也挺好用的

用MongoDB对大部分开发语言都比用SQL数据库开发便捷些,毕竟少了建schema这些事情。不过对Rails来说,获得的便捷提升比用其他大部分语言反而要来的小。因为rails配SQL数据库的方便程度是其他开发工具往往不具备的。用了Mongo,这方面反而扯平了一些。

另外,Redis、MongDB这些性能较SQL数据库为优的存储替代者,进一步放大了ruby在速度上的差距。搭着SQL一起用,一般慢在数据库;配合Redis的话,进一步发现rails运行起来真的是慢啊。

#5楼 @jasl 简单情形也很麻烦啊 ...

习惯了RDMS的开发转到NoSQL有个学习的过程,对于偏内容型的,MongoDB挺好的。 rails和mongodb的结合倒不如说mongoid和mongodb的结合。 说实话,两者都在飞速的开发中,个人感觉是可以用于一般项目了。

#7楼 @swachian 一直redis+pg……换了mongo瞬间茫然了…

#9楼 @lazing 现在看国内开源的rails项目大多都是mongo+rails……很苦恼……几乎没有pg的例子…

看应用场景吧,不是任何时候都适合用MongoDB的,大部分情况下MySQL都足够了

#12楼 @fengzhe 我很同意你的观点,脱离了实际问题或者场景,讨论的意义真的不大。

下面这张图是 Google Trender 关于 NoSQL 的变化曲线。

这张图是从2009年社交网络发展到一个新的阶段,提出 NoSQL 这个口号开始到现在的趋势变化。NoSQL 有自身局限性,但是相对于 RDBMS 来说,它带来一些非常好的功能,并解决了很多 RDBMS 的问题,比如水平扩展等,但是这些都是基于大时代背景以及具体需求和场景的。

#14楼 @lgn21st NoSQL没有解决RDBMS水平扩展的问题 ... NoSQL是直接回避掉那些难以水平扩展的问题来搞水平扩展 ...

#15楼 @bhuztez 至少,当遇到水平扩展问题的时候,NoSQL 给我提供了一根拐杖。

Mongodb也还是需要migrate的,只是因为schema free所以管理起来不一样而已……比如将has_many改成embeds_many或者反过来的时候……

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册