mongoDB简介
最后更新于:2022-04-02 05:31:37
## 前言
本文节选自美~Michal S.Miknowski著的《单页web应用, js从前端到后端》,从这里我学到了一些基础入门的知识点,与大家共享。
## 选择数据库,与其他数据库的区别
* mysql
作为最常用的关系型数据库,被用作开发最多。
* memcached
缓存服务,使用key~value存储,可以存储应用数据,提升用户体验,简单有效,在早期的应用中,用户登录以及一些相关信息都是保存在这里
* neo4j
图形数据库
* cassandra或者mongodb
文档数据库,对于文件io操作有些明显的优势
## 消除数据转换
相信做过java或者php开发的肯定遇到过需要写sql文,把查到的数据封装成自己的数据模型,然后到前端显示的时候又要转换。
而前端与后端交互数据时传递的又是json,后端同学又要转成自己的对象模型,解析成sql文存储到数据库的过程。
现在,这些统统不用,用mongodb 前后端以及服务器都是json格式的,不用转换,而且开发语言都一样,极大的利好。
## 把逻辑放在需要的地方
之前我们的整体用户逻辑分好多层去维护,比如前端,后台,数据库都要对数据进行检验,而这三端的语言又不同,维护成本较高。
当用mongodb的时候,因为三层的开发语言相同,所以我们只要考虑好逻辑应该放在那里就好,减少思维切换。
## 面向文档的存储
Mongodb存储的是json文档,因为存储和检索的单位一致,所以不需要转换。这样,我们的应用将更加简洁但这不意味着 它比java加mysql更快,但它意味着单一的数据格式下具备更加优异的性能。
## 动态文档结构
* 与关系型数据库不同的是,不用创建表,不用修改schema,这样的结构具有优点:
1文档结构灵活,不管什么结构,它都会存储文档。如果文档结构频繁更改或者没有结构,数据库也不用调整,直接存储。
2 经常变化的应用不需要改数据库,比如更新文档有了新的或者不同的属性,我们可以部署应用,它会直接保存新的结构,否则可能要修改代码了。
3 没有会引起停机或者暂时的schema变化,不必锁定数据库部分功能。
4 不需要schema设计的专业知识,构建成本低。
* 没有schema的缺点:
1没有强制的文档结构,在没有数据库级别的限制时,对文档的任何修改都不会自动传播给已有的文档,当多个程序使用相同的集合时,比较痛苦。
2 没有文档结构的定义,就无法保证结构的一致,查看结构比较困难
3 没有明确的定义,没有办法让数据访问更加准确,比如索引。
## 开始使用
* 从官网下载安装软件,然后启动相应的服务,启动之后可以通过输入MongoDB启动shell,会看到版本信息。
* 其他具体的使用我们在下一篇文档中详细介绍哦。
';