博客
关于我
MongoDB快速上手
阅读量:608 次
发布时间:2019-03-12

本文共 2441 字,大约阅读时间需要 8 分钟。

MongoDB学习笔记


1. MongoDB概念

1.1 业务应用场景

MongoDB适用于提供高性能、高可用性和支持扩展性的场景,常见应用包括:

  • 社交网络:存储用户信息、朋友圈、位置数据等。
  • 游戏:存储用户数据、装备、积分等。
  • 物流:存储订单信息、物流状态等。
  • 物联网:存储设备信息、日志数据。

MongoDB的优势在于:

  • 数据量大时表现优异。
  • 写入操作频繁,可应对高并发读写。
  • 尽管事务性要求不高,仍能满足大部分应用需求。

1.2 MongoDB简介

MongoDB是一个开源、高性能、无模式的文档型数据库,支持灵活的数据结构(BSON格式)和高扩展性的架构。

  • 文档型结构:存储为类似JSON的文档,支持嵌入式数据、数组等。
  • 它像关系型数据库一样直观,但无需固定模式,灵活性高。

1.3 数据模型

MongoDB的最小存储单位是文档(document),类似于JSON对象:

  • 字段名称为字符串,值可以是各种数据类型(包括嵌套文档和数组)。
  • MongoDB支持多种数据类型,如整数、字符串、日期、Binary Data、 Regex等。

1.4 MongoDB特点

  • 高性能:支持复杂查询和高并发操作。
  • 高可用性:支持副本集(replica set)实现数据冗余和自动故障转移。
  • 高可扩展性:支持分片(sharding),可水平扩展。
  • 灵活的查询:支持文本搜索、地理位置查询等。
  • 无模式:无需固定数据模式,便于快速迭代。

2. 单机部署配置

2.1 Windows安装

  • 下载安装包

    • 从MongoDB官网下载对应版本的Windows安装包。
    • 选择合适的版本(如31位或64位),根据上述提示下载。
  • 解压与配置

    • 将压缩包解压到指定目录(如 data/db)。
    • 启动MongoDB,命令行启动或通过配置文件。
    • 配置文件中注意避免转义字符问题,避免使用Tab分隔字段。
  • 使用Shell命令

    • 登录MongoDB:mongo --host localhost --port 27017
    • 查看数据库:show databases
    • 退出:exit
  • 使用Compass

    • 下载并安装MongoDB Compass客户端,连接本地或远程站点。
  • 2.2 Linux安装

  • 下载安装包

    • 下载对应的Linux版本安装包。
  • 解压并配置

    • 解压并将目录移动到指定位置(如 /usr/local/mongodb)。
    • 创建数据和日志目录,配置配置文件。
    • 启动MongoDB完成配置。
  • 使用命令和Compass

    • 使用命令:mongo --port 27017
    • 查看数据库和索引:show collectionsdb.getIndexes()
    • 通过Compass图形化界面管理和查询数据。
  • 停止服务

    • 快速关闭:kill -2 PID
    • 标准关闭:db.shutdownServer()

  • 3. 基本操作命令

    3.1 数据库操作

    • 创建数据库use articledb
    • 删除数据库db.dropDatabase()

    3.2 集合操作

    • 创建集合db.createCollection("mycollection")
    • 删除集合db.collection.drop()

    3.3 文档操作

    • 插入文档db.collection.insert()
    • 批量插入db.collection.insertMany()
    • 查询文档db.collection.find()
    • 分页查询db.collection.find().skip(N).limit(N)
    • 排序查询db.collection.find().sort({字段: 1})
    • 删除文档db.collection.remove({条件})
    • 更新文档db.collection.update({条件}, 更新操作)

    3.4 查询优化

    • 索引支持:创建和管理索引,使用解释计划(Explain Plan)查看查询性能。
    • 复杂查询:使用正则表达式、集合操作符($and、$or等)进行高级查询。

    4. 索引管理

    4.1 索引概述

    • 索引显著提升查询效率,通过B-Tree结构实现高效查找。
    • 默认创建 _id 索引,禁止删除。

    4.2 索引类型

    • 单字段索引:对单个字段进行升序或降序排序。
    • 复合索引:多字段组合索引,提升复杂查询效率。
    • 地理空间索引:支持地理位置查询。
    • 文本索引:支持文本搜索。
    • 哈希索引:用于分片操作。

    4.3 索引管理

    • 创建索引db.collection.createIndex({字段: 1})
    • 删除索引db.collection.dropIndex("索引名")
    • 查看索引db.collection.getIndexes()

    4.4 查询解释

    • 使用 explain() 命令分析查询性能,查看是否基于索引查询。
    • 提高查询效率的关键:合理设计索引和查询约束条件。

    5. 文章评论开发

    5.1 项目搭建

    • 依赖管理:在项目POM中添加Spring Boot和Spring Data MongoDB依赖。
    • 配置数据库:在application.yml中配置MongoDB地址和数据库名。

    5.2 实体类设计

    • 实体类注解:使用@Document@Indexed@CompoundIndex等注解定义索引。
    • 字段映射:确保字段名与数据库字段一致,避免冲突。

    5.3 业务实现

    • 保存评论:使用 @ür股份持久化框架或MongoTemplate直接操作。
    • 查询评论:通过Pageable进行分页查询。
    • 点赞功能:使用MongoTemplate实现局部更新,提升性能。

    6. 总结

    MongoDB适合处理高性能、高扩展性和大数据存储的应用场景,学习过程中需熟练掌握数据模式、索引管理和CRUD操作。通过Spring Data MongoDB快速搭建业务模块,优化点赞功能等细节能提高开发效率,为后续复杂应用奠定基础。

    转载地址:http://mjhxz.baihongyu.com/

    你可能感兴趣的文章
    PowerDesigner使用教程:不显示背景网格
    查看>>
    PowerDesigner使用教程:创建数据模型以及导出
    查看>>
    PowerDesigner使用教程:右侧工具栏显示/隐藏
    查看>>
    PowerDesigner使用教程:导出sql文件以及解决中文乱码问题
    查看>>
    PowerDesigner使用教程:时间字段设置
    查看>>
    PowerDesigner使用教程:给字段添加唯一约束
    查看>>
    QGIS中怎样设置图层样式并导出地图样式
    查看>>
    PowerDesigner使用笔记
    查看>>
    QGIS中怎样实现数据坐标系转换
    查看>>
    PowerDesigner学习--基本步骤
    查看>>
    PowerDesigner导出Report通用报表
    查看>>
    PowerDesigner教程系列(二)概念数据模型
    查看>>
    Powerdesigner显示表的comment和列的comment的方法
    查看>>
    PowerDesigner最基础的使用方法入门学习
    查看>>
    PowerDesigner版本控制器设置权限
    查看>>
    PowerDesigner生成数据模型并导出报告
    查看>>
    QGIS中导入dwg文件并使用GetWKT插件获取绘制元素WKT字符串以及QuickWKT插件实现WKT显示在图层
    查看>>
    PowerDesigner逆向工程从SqlServer数据库生成PDM(图文教程)
    查看>>
    PowerEdge T630服务器安装机器学习环境(Ubuntu18.04、Nvidia 1080Ti驱动、CUDA及CUDNN安装)
    查看>>
    PowerPC-object与elf中的符号引用
    查看>>