Mongodb与Postgres在Nodejs应用程序

我正在构build一个nodejs应用程序,并完全在nosql mongodb和rmds PostregresSql之间撕裂。 我的项目是创build一个开源示例项目,用于logging访问者,并使用nodejs在网页上实时显示访客统计信息。 我打算首先使用mongodb,因为很多nodejs的例子和教程,albiet大多是较老的,使用它和Paas主机有一个免费的teir是很多的。 然而,我最近在mongodb上看到了很多抨击,发现那些试图使用mongodb的人最终转向了postgres。 http://blog.engineering.kiip.me/post/20988881092/a-year-with-mongodb http://dieswaytoofast.blogspot.com/2012/09/mysql-vs-postgres-vs-mongodb.html http: //www.plotprojects.com/why-we-use-postgresql-and-slick/我也是一个heroku的粉丝,并且听说过很多关于postgress的问题,发现sql查询有时候可以很好。

我不是一个数据库专家,所以我不能告诉我的生活要走哪条路。 如果你能给出一些build议,哪一个可以考虑以及为什么,我真的会赞同它。

我有几个标准:

  1. 既然我想这是一个例子,那么有一个方法来容纳大小适中的数据是很好的。 我知道mongodb挑衅地提供这个,但像heroku这样的postgres paas似乎有非常小的数据库(因为我logging每个访问者的网站)

  2. 一个简单易懂的数据库。

  3. performance并不重要,但速度不能伤害

感谢所有的帮助!

注意 :请不要火焰大战,大家有自己的看法:)

在SQL数据库和NoSQL数据库之间进行select现在正在大量讨论,关于这个问题有很多很好的文章。 我会在最后列出一对夫妇。 根据您的特定需求,我推荐使用SQL over NOSQL来解决问题。

NoSQL有一组用例,数据存储在称为文档的大型紧密耦合的包中,而不是在关系模型中。 简而言之,与单个实体紧密耦合的数据(如单个用户使用的所有文本文档)最好存储在NoSQL文档模型中。 数据行为像excel电子表格,并很好地适合行,并受到聚合计算,最好存储在一个SQL数据库,其中postgresql只是几个很好的select之一。

您可能会考虑的第三个选项是redis( http://redis.io/ ),它是一个简单的键值数据存储,在查询SQL时非常快速,但不像严格的键入。

你引用的例子似乎是一个简单的行/列types的问题。 你会发现SQL语法比MongoDB的查询语法要less得多。 节点有很多东西可以推荐它,而且工具集在过去的一年已经成熟了很多。 我会build议使用monogoose npm包,因为它减less了本地mongodb所需的样板代码的数量,我没有注意到任何性能下降。

http://slashdot.org/topic/bi/sql-vs-nosql-which-is-better/

http://www.infoivy.com/2013/07/nosql-database-comparison-chart-only.html