为什么NodeJ通常使用MongoDB而不是Mysql?

Otgonbayar lamjav

我听说Mysql使用了Uber,Linkedin等大公司。我认为NodeJs比MongoDB最好使用Mysql。我错了吗?也许我不知道有关MongoDB的功能

强尼

像您一样,当我开始学习NoSQL时也遇到了同样的难题。来自RDBMS的背景NoSQL或MongoDB易于扩展,并且具有JavaScript开发人员熟悉的类似JSON的语法。想象一下在开发Todo应用程序时的结构:

Todo Database (MySQL):
- Todo (table)
  - Id

- Todo Item (table)
  - TodoId
  - TodoName

使用MongoDB,您可以将所有内容放在一个表或集合中,如下所示:

Todo: {
  Id: //some uniq id,
  Items: [
    0: {
      name: 'wash the dishes'
    },
    1: // and so on
  ]
}

然后,如果您决定破坏或添加更多细节,则可以这样做,因此,“ scale”一词

Todo: {
  Id: asdf
}

TodoItem: {
  todoId: asdf,
  name: 'wash the dishes',
  etc: // and so on
}

最重要的是,如果您觉得自己的应用程序几乎是一成不变的,则可以转移到您提到的大公司正在使用的MySql或Postgresql。

这只是一个简单的示例,可能在SQL上使用NoSql不会带来太多好处。但是考虑到这一点,您正在尝试构建一个不熟悉数据关系的新应用程序。是的,您可以构建ER Diagrams并对其进行标准化,并且在开始构建应用程序时,您意识到一个非常重要的领域,它可能会影响表的整个关系。还是您想快速构建并动手,用NoSql构建凌乱的表/集合,然后看看您的应用程序能更快地运行?

希望能有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么台式机GPU通常使用立即模式渲染而不是基于图块的延迟渲染?

为什么 Flink 使用 Pushgateway 而不是 Prometheus 通常的 pull 模型进行一般指标收集?

为什么要使用“ slim = tf.contrib.slim”而不是通常导入苗条?

为什么通常在IIFE之后(而不是在脚本顶部)“严格使用”?

为什么使用'='而不是':='?

使用NodeJ和MongoDB存储事件的最佳实践是什么

为什么函数的return语句不是通常的int []

为什么通常使用new Parent()而不是Object.create(Parent.prototype)来初始化子代的原型?

为什么 iloc 使用 [] 而不是 ()?

为什么Haskell使用->而不是=?

为什么mongodb java驱动程序在ObjectId中使用随机字节而不是机器ID?

为什么在MongoDB或CouchDB中使用Javascript而不是Java,C ++等其他语言?

为什么doccker使用缓存的mysql数据而不是最新的mysql dump?

MYSQL:什么是使用“用户”在MySQL而不是“根”的利弊?为什么我们创建MySQL的新用户?

为什么通常不使用正算术表示形式?

为什么通常无法重用别名的mySQL为什么能解析这些列别名?

人工神经网络 - 为什么通常在隐藏层使用 sigmoid 激活函数而不是 tanh-sigmoid 激活函数?

NodeJ / ExpressJs-为什么使用Flash /消息中间件

为什么 C++ 的 NULL 通常是整数文字而不是像 C 中的指针?

为什么通常给Objective-C委托赋予属性而不是保留?

为什么内核 4.4.0-135 需要显式升级而不是通常的 apt 升级?

为什么我的某些USB 3.0连接器是绿色而不是通常的蓝色?

为什么$ GOPATH通常设置在〜/ .bashrc和〜/ .bash_profile中而不是〜/ .profile中?

为什么MongoDB和MySQL比grep慢?

为什么Mysql解释使用索引用于以下SQL语句而不是范围

为什么使用MyISAM引擎而不是InnoDB创建默认的“ mysql”数据库?

为什么使用purrr :: map而不是lapply?

为什么Ubuntu使用eglibc而不是glibc?

为什么要使用IHttpActionResult而不是HttpResponseMessage?