文章目录
一、介绍
1、Nosql
Not Only SQL ,本质也是一种数据库的技术,只不过相比于关系型数据库,没有那么多约束
优点
- 满足对数据库的高并发读写
- 对海量数据的高效存储和访问
- 对数据库高扩展性和高可用性
- 灵活的数据结构,满足数据结构不固定的场景
缺点
- 一般不支持事务
- 实现复杂SQL查询比较复杂
- 运维人员数据维护门槛较高
- 目前不是主流的数据库技术
2、关系型和非关系型数据库
关系型数据库
- MySQL、Oracle、DB2、SQL Server…
- 数据库中全是表
非关系型数据库
- 键值对数据库:Redis、memcached
- 列式数据库:Hbase
- 文档型数据库:MongoDB
- 图结构数据库:infoGrid、Neo4J
3、MongoDB
是一个数据库,高性能、无模式、文档性,目前nosql中最热门的数据库,开源产品,基于c++开发,是nosql数据库中功能最丰富,最像关系数据库的
对比MySQL
MySQL:数据库->表->行->主键
MongoDB:数据库->集合->文档 ->Object ID(自动维护)
特性
- 面向文档的存储
类似于JSON的结构,MongoDB中的“JSON”我们称为BSON,比普通的JSON的功能要更加的强大 - 格式自由,数据格式不固定,生产环境下修改结构都可以不影响程序运行
- 强大的查询语句,面向对象的查询语言,基本覆盖sql语言所有能力
- 完整的索引支持,支持查询计划
- 支持复制和自动故障转移
- 支持二进制数据及大型对象(文件)的高效存储
- 使用分片集群提升系统扩展性
- 使用内存映射存储引擎,把磁盘的IO操作转换成为内存的操作
特性 - MongoDB数据库使用的是JavaScript进行操作的,在MongoDB含有一个对ES标准实现的引擎,在MongoDB中所有ES中的语法中都可以使用
核心概念
- 实例
系统上的一个进程,可以有多个库 - 库
类似mysql的库 - 集合
类似mysql的表 - 文档
类似mysql每一行数据
键值对数据
为什么选择它
数据库流行程度排行,可以看出,是比较热门的数据库
满足以下1个,可以考虑使用,2个的话,选择基本没错
使用场景
- 游戏场景
使用 MongoDB 存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、更新 - 物流场景
使用 MongoDB 存储订单信息,订单状态在运送过程中会不断更新,以 MongoDB 内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来 - 社交场景
使用 MongoDB 存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能 - 物联网场景
使用 MongoDB 存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析 - 视频直播
使用 MongoDB 存储用户信息、礼物信息等
不能使用的场景
- 高度事务性系统
例如银行、财务等系统
MongoDB对事物的支持较 - 传统的商业智能应用
特定问题的数据分析,多数据实体关联,涉及到复杂的、高度优化的查询方式 - 数据结构相对固定
二、安装
1、下载
下载地址
MongoDB 6.0 以后做出了重大改变,MongoDB 已经不再默认为你安装shell 工具,因此需要安装一个额外的shell,安装地址
2、安装
解压即可,然后创建mongodb存储数据目录data、保存日志文件目录log
3、配置环境变量:D:\mongodb\bin
4、启动服务端
用来保存数据
打开cmd命令行窗口,执行mongod --dbpath D:\mongodb\data
32位系统的话,启动服务器时,需要输入如下内容
mongod --storageEngine=mmapv1
将MongoDB设置为系统服务,可以自动在后台启动,不需要每次都手动启动
方式1
在目录 D:\mongodb下新增一个配置文件mongod.cfg
以管理员的身份打开命令行窗口 ,执行
sc create MongoDB binPath="\"D:\mongodb\bin\mongod.exe\" --service --config=\"D:\mongodb\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"
方式2
在目录 D:\mongodb\log下新增一个mongodb.log
以管理员的身份打开命令行窗口 ,执行
mongod --dbpath “D:\mongodb\data” --logpath “D:\mongodb\log\mongodb.log” --install --serviceName “MongoDB”
启动服务:net start MongoDB
方式1可能出现以下错误,建议使用方式2
MongoDB 服务正在启动 .
MongoDB 服务无法启动。
发生服务特定错误: 100.
如果启动失败,先删除之前配置的服务,sc delete MongoDB
5、验证
浏览器输入http://127.0.0.1:27017,验证启动成功
6、启动客户端
用来操作数据
打开新的cmd命令行窗口,执行mongosh
测试,成功