一、MongoDB介绍
MongoDB是一个开源、高性能、无模式的文档型数据库,是NoSQL(非关系型数据库)的一种。MongoDB采用BSON的格式存储文档数据。BSON(Binary JSON)是类似JSON格式的二进制存储格式。
MongoDB特点:
(1)面向文件的
(2)高性能
(3)高可用性
(4)易拓展性
(5)丰富的查询能力
(6)架构简单
MongoDB支持的数据类型:
String、Integer、Double、Boolean、Object、Object ID、Arrays、Datetime、Code、Regular Expression等。
其中Code类型用于存储JavaScript代码,Regular Expression类型用于存储正则表达式。
二、体系结构
MySQL和MongoDB对比
三、应用场景(三高)
1、High Performance — 对数据库高并发读写的需求
2、Huge Storage — 对海量数据的高效率存储和访问的需求
3、High Scalability && High Availability — 对数据库的高拓展性和高可用性的需求
游戏领域:存储用户的基本信息以及装备、积分等信息。方便查询、更新。
物流领域:使用内嵌数组形式存储不断更新的订单信息。
社交领域:存储用户信息、朋友圈信息、地理位置索引等。
物联网领域:存储设备信息,设备汇报的日志信息等。
直播领域:存储用户信息、礼物信息等。
四、下载安装
1、下载地址:https://www.mongodb.com/download-center/community/releases
2、选择对应的版本以及系统下载
版本格式为x.y.z,其中y为偶数代表稳定版,y为奇数代表开发版,z为修正版号,越大越好。
windows系统下载.zip文件,直接解压就可以使用。
3、目录格式
4、新建data/db作为数据库路径
5、新建conf作为配置文件路径
配置文件内容(指定数据库路径):
五、操作命令
1、两种启动MongoDB方式:
(1)在MongoDB的bin目录下打开命令行输入mongod — dbpath=..\data\db(数据库路径)
(2)配置文件启动:在bin目录下打开命令行输入mongod -f ..\conf\mongod.conf(配置文件路径)
启动成功:
2、连接MongoDB:在bin目录下打开命令行输入mongo或mongo —host=127.0.0.1(域名) —port=27017(端口号)
3、显示数据库:show dbs
4、创建、切换数据库:use xxx(数据库名)
5、删除数据库:db.dropDatabase()
6、查看当前使用数据库:db
7、显式创建集合:db.createCollection(“xxx”)(集合名)
8、查看集合:show collections
9、删除集合:db.xxx(集合名).drop()
10、文档插入:db.xxx.insert( { json格式 } )
11、批量插入:db.xxx.insertMany( [ json数组 ] )
12、查询文档:db.xxx.find()
13、条件查询:db.xxx.find( { aaa(字段):”bbb” (值) } )
14、查询一个:db.xxx.findOne( { aaa:”bbb” } )
15、投影查询(查询结构返回部分字段): db.xxx.find( {aaa:”bbb”} , {aaa:1,bbb:1,_id:0})(1代表显示,_id默认会显示,设置为0不显示)
16、覆盖修改:db.xxx.update( {json查询条件},{json更新字段} )
17、局部修改:db.xxx.update( {json查询条件},{$set:{json更新字段}} )
18、批量修改:db.xxx.update( {json查询条件},{$set:{json更新字段 }},{multi:ture} )
19、列值自增:db.xxx.update( {json查询条件},{$inc:{aaa:NumberInt(1)}} )
20、删除文档:db.xxx.remove( {json查询条件} )
21、删除全部数据:db.xxx.remove( {} )
22、统计所有纪录数:db.xxx.count()
23、按条件统计:db.xxx.count( {json查询条件})
24、返回指定条数:db.xxx.find().limit(2)(只显示前2条)
25、跳过指定条数:db.xxx.find().skip(2)(跳过前2条)
26、分页查询:
第一页db.xxx.find().skip(0).limit(2)
第二页db.xxx.find().skip(2).limit(2)
27、排序查询:db.xxx.find().sort( {aaa:1} )(升序1,降序-1)
28、查看索引:db.xxx.getIndexes()
29、创建索引:db.xxx.createIndex( {aaa:1} )(升序1,降序-1)
30、创建复合索引:db.xxx.createIndex( {aaa:1,bbb:-1} )
31、移除索引:db.xxx.dropIndex( {aaa:1} )
32、移除全部索引:db.xxx.dropIndexes()
六、SpringBoot整合MongoDB
1、服务器启动mongodb
2、pom.xml文件引入mongodb依赖
3、配置yml文件
spring:
#mongodb配置
_data:
mongodb:
host: 127.0.0.1 #mongodb服务器ip
database: articledb #mongodb数据库名
port: 27017 #mongodb端口号_
4、创建实体类
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
5、创建Mapper层接口
继承MongoRepository接口,提供了基本的增删改成功能。
6、创建Service层接口及其实现类
service接口编写方法,在实现类里重写方法。
7、创建测试类测试方法