1、回顾
node服务器的写法
服务器
前后端分离
前后端不分离
express
express生成器
ejs模版语法:变量、条件判断、循环渲染、引入
2、mongodb介绍
MongoDB 是一个基于分布式文件存储的数据库。
由C++语言编写(node也是由C++语言编写)
旨在为 WEB 应用提供可扩展的高性能数据存储解决方案.
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的 ---- 关系型数据库(mysql)
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。
MongoDB 文档类似于 JSON 对象。
字段值可以包含其他文档,数组及文档数组。
2.1 关系型数据库和非关系型数据库区别
sql术语/概念 | mongodb术语/概念 | 解释/说明 |
---|---|---|
database | database | 数据库 |
table | collection | 数据库表/集合 |
row | document | 数据记录行/文档 |
column | field | 数据字段/域 |
index | index | 索引 |
table joins | 表连接,mongodb不支持 | |
primary key | primary key | 主键,mongdb自动将_id字段设置为主键 |
下表说明各自的优缺点以及特性
数据库类型 | 特性 | 优点 | 缺点 |
---|---|---|---|
关系型数据库 | 1、关系型数据库,是指采用了关系模型来组织数据的数据库;2、关系型数据库的最大特点就是事务的一致性;3、简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。 | 1、容易理解:二维表结构是非常贴近逻辑世界一个概念,关系模型相对网状、层次等其他模型来说更容易理解;2、使用方便:通用的SQL语言使得操作关系型数据库非常方便;3、易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大减低了数据冗余和数据不一致的概率;4、支持SQL,可用于复杂的查询。 | 1、为了维护一致性所付出的巨大代价就是其读写性能比较差;2、固定的表结构;3、高并发读写需求;4、海量数据的高效率读写; |
非关系型数据库 | 1、使用键值对存储数据;2、分布式;3、一般不支持ACID特性;4、非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。 | 1、无需经过sql层的解析,读写性能很高;2、基于键值对,数据没有耦合性,容易扩展;3、存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,而关系型数据库则只支持基础类型。 | 1、不提供sql支持,学习和使用成本较高;2、无事务处理,附加功能和报表等支持也不好; |
3、操作mongodb
3.1 安装mongodb
mac系统: https://www.runoob.com/mongodb/mongodb-osx-install.html
https://www.mongodb.com/download-center/community
https://fastdl.mongodb.org/osx/mongodb-macos-x86_64-4.2.0.tgz
windows系统
下载压缩文件的mongodb,解压即可
在D盘的根目录下创建 data文件夹,在data文件夹内部创建文件夹db
打开压缩的mongodb文件夹,进入bin目录
shift + 右键 选择打开 命令行窗口
mongod --dbpath d:datadb
// 如果报错
./mongod --dbpath d:datadb
``