一、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对比
    image.png
    image.png

    三、应用场景(三高)
    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文件,直接解压就可以使用。
    image.png
    3、目录格式
    image.png
    4、新建data/db作为数据库路径
    image.png
    image.png
    5、新建conf作为配置文件路径
    image.pngimage.png
    配置文件内容(指定数据库路径):
    image.png
    五、操作命令
    1、两种启动MongoDB方式:
    (1)在MongoDB的bin目录下打开命令行输入mongod — dbpath=..\data\db(数据库路径)
    image.png
    (2)配置文件启动:在bin目录下打开命令行输入mongod -f ..\conf\mongod.conf(配置文件路径)
    image.png
    启动成功:
    image.png
    2、连接MongoDB:在bin目录下打开命令行输入mongo或mongo —host=127.0.0.1(域名) —port=27017(端口号)
    image.png
    3、显示数据库:show dbs
    image.png
    4、创建、切换数据库:use xxx(数据库名)
    image.png
    5、删除数据库:db.dropDatabase()
    image.png
    6、查看当前使用数据库:db
    image.png
    7、显式创建集合:db.createCollection(“xxx”)(集合名)
    image.png
    8、查看集合:show collections
    image.png
    9、删除集合:db.xxx(集合名).drop()
    image.png
    10、文档插入:db.xxx.insert( { json格式 } )
    image.png
    11、批量插入:db.xxx.insertMany( [ json数组 ] )
    image.png
    12、查询文档:db.xxx.find()
    image.png
    13、条件查询:db.xxx.find( { aaa(字段):”bbb” (值) } )
    image.png
    14、查询一个:db.xxx.findOne( { aaa:”bbb” } )
    image.png
    15、投影查询(查询结构返回部分字段): db.xxx.find( {aaa:”bbb”} , {aaa:1,bbb:1,_id:0})(1代表显示,_id默认会显示,设置为0不显示)
    image.png
    16、覆盖修改:db.xxx.update( {json查询条件},{json更新字段} )
    image.png
    17、局部修改:db.xxx.update( {json查询条件},{$set:{json更新字段}} )
    image.png
    18、批量修改:db.xxx.update( {json查询条件},{$set:{json更新字段 }},{multi:ture} )
    image.png
    19、列值自增:db.xxx.update( {json查询条件},{$inc:{aaa:NumberInt(1)}} )
    image.png
    20、删除文档:db.xxx.remove( {json查询条件} )
    image.png
    21、删除全部数据:db.xxx.remove( {} )
    image.png
    22、统计所有纪录数:db.xxx.count()
    image.png
    23、按条件统计:db.xxx.count( {json查询条件})
    image.png
    24、返回指定条数:db.xxx.find().limit(2)(只显示前2条)
    image.png
    25、跳过指定条数:db.xxx.find().skip(2)(跳过前2条)
    image.png
    26、分页查询:
    第一页db.xxx.find().skip(0).limit(2)
    image.png
    第二页db.xxx.find().skip(2).limit(2)
    image.png
    27、排序查询:db.xxx.find().sort( {aaa:1} )(升序1,降序-1)
    image.png
    28、查看索引:db.xxx.getIndexes()
    image.png
    29、创建索引:db.xxx.createIndex( {aaa:1} )(升序1,降序-1)
    image.png
    30、创建复合索引:db.xxx.createIndex( {aaa:1,bbb:-1} )
    image.png
    31、移除索引:db.xxx.dropIndex( {aaa:1} )
    image.png
    32、移除全部索引:db.xxx.dropIndexes()
    image.png

    六、SpringBoot整合MongoDB
    1、服务器启动mongodb
    image.png
    2、pom.xml文件引入mongodb依赖


    org.springframework.boot
    spring-boot-starter-data-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;
    image.png

    5、创建Mapper层接口
    继承MongoRepository接口,提供了基本的增删改成功能。
    image.png

    6、创建Service层接口及其实现类
    service接口编写方法,在实现类里重写方法。
    image.png
    image.png
    image.png

    7、创建测试类测试方法
    image.png