前言
文章内容输出来源:拉勾教育Java高薪训练营;
NoSQL=Not Only SQL,支持类似SQL的功能, 与Relational Database相辅相成。其性能较高,不使用SQL意味着没有结构化的存储要求(SQL为结构化的查询语句),没有约束之后架构更加灵活。
NoSQL数据库四大家族 列存储 Hbase,键值(Key-Value)存储 Redis,图像存储 Neo4j,文档存储 MongoDB
MongoDB 是一个基于分布式文件存储的数据库,由 C++ 编写,可以为 WEB 应用提供可扩展、高性能、易部署的数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库中功能最丰富、最像关系数据库的。在高负载的情况下,通过添加更多的节点,可以保证服务器性能。
MongoDB体系结构
![82e8fc81175b0884451d875f5287ff6a.png](https://i-blog.csdnimg.cn/blog_migrate/b2529d9b4e77278af453a0742c433c67.jpeg)
MongoDB使用了BSON这种结构来存储数据和网络数据交换。那 BSON 是什么呢?
BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和数组对象,但是BSON有JSON没有的一些数据类型,如Date和Binary Data类型。BSON可以做为网络数据交换的一种存储形式,是一种schema-less的存储形式,它的优点是灵活性高,但它的缺点是空间利用率不是很理想。{key:value,key2:value2} 这是一个BSON的例子,其中key是字符串类型,后面的value值,它的类型一般是字符串,double,Array,ISODate等类型。
BSON有三个特点:轻量性、可遍历性、高效性
MongoDB把 BSON 这种格式转化成一文档这个概念(Document),这里的一个Document也可以理解成关系数据库中的一条记录(Record),只是这里的Document的变化更丰富一些,如Document可以嵌套。
MongoDB中Document 中 可以出现的数据类型
![9deede632610f6f6815d9f78a36ad243.png](https://i-blog.csdnimg.cn/blog_migrate/60a34e11c53455b2da31000c27bcf7d6.jpeg)
安装
官网
https://www.mongodb.com/
![1083cab8e451b3b1666af5bbca6bbeb0.png](https://i-blog.csdnimg.cn/blog_migrate/b797b30f517c7a5f62cf0e077b97d06e.jpeg)
选择自己合适的下载。
![ea5c3a8a9f1dccd23c864e199661a16e.png](https://i-blog.csdnimg.cn/blog_migrate/af718690c58fc92d7bd3f583dca42290.jpeg)
下载之后安装,我这里下载的是 linxu 版本。放到服务器上之后解压
tar -zxvf mongodb-linux-x86_64-4.1.3.tgz
![08bb98fcd876b33fa8d98d22e091b266.png](https://i-blog.csdnimg.cn/blog_migrate/f7e172999092ad42e8bc4001482bf27b.jpeg)
编写 mongo.conf
创建配置文件,配置内容如下。指定路径端口和访问ip 等等配置。
dbpath=/data/mongo/
port=27017
bind_ip=0.0.0.0
fork=true
logpath = /data/mongo/MongoDB.log
logappend = true
auth=false
参数说明:
参数 | 说明 |
---|
启动
./mongod -f mongo.conf
![6a9d375ee6f7ca828f03af400bb1f592.png](https://i-blog.csdnimg.cn/blog_migrate/f04a147b33ff64682bf14f6a8d5b5435.png)
说明启动成功啦。
连接
我们mongo 服务已经启动了,我们怎么像进入 mysql 进入mongo 数据库呢?
#默认配置启动
./bin/mongo
#指定主机和端口的方式启动
./bin/mongo --host=127.0.0.1 --port 27017
![57ff4743dc026e06fa6e679fcd7f5d76.png](https://i-blog.csdnimg.cn/blog_migrate/421b940d80e3e72c4874875d87e8be6a.jpeg)
我们可以通过可视化工具来使用,类似于MySQL 的 navicat。
mongobooster下载地址:
https://nosqlbooster.com/downloads
![31d6500b713e37b2ad64059c0cad993d.png](https://i-blog.csdnimg.cn/blog_migrate/b3417647ef276d0a98d7f5b9538345d2.jpeg)
下载安装完之后,连接mongo 数据库就可以了
![c327683f07120635efafe2b4664f254f.png](https://i-blog.csdnimg.cn/blog_migrate/a2f255d1ab5fefa161fdbd79e2710cd0.jpeg)
Mongo 命令
MongoDB 的基本操作
库级别
1、查看数据库
show dbs;
2、创建数据库(切换数据库)
use 数据库名;
eg:
use test
3、删除库
#删除当前数据库
db.dropDatabase();
表级别
1、创建集合
db.createCollection("集合名")
2、查看集合
show tables;
show collections;
3、删除集合
db.集合名.drop();
eg:
db.user.drop();