node.js - Nodejs 中的 Mongodb 与 Postgres

标签 node.js mongodb postgresql nosql

我正在构建一个 NodeJS 应用程序,并且在 NoSQL MongoDB 与 RMDS PostregresSql 之间完全纠结。我的项目是创建一个开源示例项目,用于使用 NodeJS 在网页上记录访问者并实时显示访问者统计信息。一开始我打算使用 MongoDB,因为很多 NodeJS 示例和教程,尽管大多是较旧的,都使用了它,而且免费层的 paas 主机比比皆是。然而,我最近看到很多人抨击 MongoDB,发现尝试使用 MongoDB 的人最终切换到 Postgres:

我也是 Heroku 的粉丝,因此听说过很多关于 Postgres 的事,并且发现 SQL 查询有时会很不错。

我不是数据库专家,所以我一生都无法告诉我该走哪条路。如果您能就应该考虑哪一个以及为什么提供一些建议,我将不胜感激。

我有几个标准:

  1. 因为我希望这是一个示例,所以最好有一种方法来托管大量数据。我知道 MongoDB 肯定提供了这个,但是像 Heroku 这样的 Postgres paas 似乎有相当小的数据库(因为我记录了网站的每个访问者)

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

  3. 性能并不重要,但速度不会受到伤害

感谢大家的帮助!

注意:请不要喷火,每个人都有自己的看法:)

最佳答案

目前,在 SQL 数据库和 NoSQL 数据库之间进行选择无疑引起了激烈的争论,并且有很多关于这个主题的好文章。我会在最后列出一对。对于您的特定需求,我推荐 SQL 而不是 NOSQL 没有问题。

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

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

您引用的示例似乎是一个简单的行/列类型问题。您会发现 SQL 语法远没有 MongoDB 的查询语法那么晦涩难懂。 Node 有很多值得推荐的东西,并且该工具集在过去一年中已经显着成熟。我建议使用 monogoose npm 包,因为它减少了 native mongodb 所需的样板代码量,我没有注意到任何性能下降。

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

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

关于node.js - Nodejs 中的 Mongodb 与 Postgres,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18776088/

相关文章:

jquery - 未发送参数时获取 MySQL 查询的所有结果

node.js - 防止服务器在与数据库交互时崩溃

java - 如何从 Java Spring Boot 执行复杂的 MongoDB native 查询

mongodb - 获取mongodb中计数最大的字段名称

python - 如何使用 Python 测试 timescaledb 数据库

sql - PostgreSQL 查询无匹配条件

你能在 C 中编辑 Postgres ArrayType 吗?

javascript - 如何从node.js中的json文件获取对象?

javascript - 处理 looooong HTTP 请求(当前使用 axios)

javascript - 如何使用n选择最新的node.js v6版本?