cnodejs.org 目前用的数据库是什么?
redis:从功能上来说是一个纯粹的key-value存储(不可以对value进行搜索),另外有一些pub/sub的功能,另外由于它有很强的事务操作能力(比如mulit().set(…).expire(…).exec() ,可以原子化执行一系列操作),还有自动timeout存储的功能(可以设置一些key在多少时候expire),因此它非常合适一些缓冲和临时存储。
mongodb:它是最接近sql的一种nosql,虽然也是key-value,但它有强大的搜索value的功能,可以对value的各种字段查询进行各种方式的查询(比如:摸个数组属性里面有某个值等等),还可以进行集合操作,map/reduce操作,很多sql种很难进行的查询,在mongodb中可以轻松搞定。但是它最大的缺陷是: 1、没有事务:只能使用mongodb只带的很多原子的update语句,比如update({_id:’’}, {$inc: {…}, {$push:{…}}}),在一个collection范围内尽量做成原子操作,但是跨collections就不可能。 2、不能join,每个collection(相当于sql中的表)都是一个独立世界,collection之间没有办法交流。 所以我的理解就是,mongo对于原型系统或者不严肃系统(不和钱打交道)非常合适,和nodejs是绝配,尤其是它的查询表达式就是js的对象,这对写查询语句非常方便,但是不太合适比较严肃的电子商务系统就不合适。
以上个人观点,供参考。:)
@XGHeaven 真的,你去学下sql,要不了多少时间,常用的mysql,资料多,坑少,至于mongo我用过1,2次就不想用了,可能鼓吹前端js全栈都是高手吧,用了下mongo并没有感觉js在这里有什么方便和让我愉悦之处,搞了半天都在解决坑去了,如果你爱折腾当我没说吧