Files
Cloud-book/数据库/MongoDB_2025/mongodb_tpl.md
2025-08-27 17:10:05 +08:00

5.4 KiB
Raw Blame History

基础概念

NoSQL 数据库概述

  • 关系型数据库 vs NoSQL 数据库
  • NoSQL 数据库分类(文档型、键值型、列族型、图形型)
  • MongoDB 在 NoSQL 生态中的定位

核心概念

  • 文档Document与 BSON 格式
  • 集合Collection概念
  • 数据库Database结构
  • MongoDB 与关系型数据库术语对比

架构原理

  • MongoDB 存储引擎WiredTiger
  • 内存映射文件系统
  • 索引机制
  • 查询优化器

文档学习


环境搭建

安装部署

  • Linux 环境安装RockyLinux9

相关配置

  • 配置文件详解
  • 数据目录设置
  • 日志配置
  • 网络绑定设置

服务管理

  • systemctl 服务管理
  • 开机自启动配置
  • 服务状态监控

实践环节

  • 生产环境配置文件模板

基础操作

MongoDB Shell 使用

  • mongo shell 连接
  • 基本命令操作
  • 脚本执行

数据库操作

  • 创建和删除数据库
  • 数据库列表查看
  • 数据库切换

集合操作

  • 创建和删除集合
  • 集合属性设置
  • 集合统计信息

文档 CRUD 操作

  • 插入文档insert、insertOne、insertMany
  • 查询文档find、findOne
  • 更新文档update、updateOne、updateMany
  • 删除文档remove、deleteOne、deleteMany

实践环节

  • 基础 CRUD 操作练习
  • 批量数据导入导出
  • 数据迁移实验

进阶查询

查询操作符

  • 比较操作符($eq、$ne、$gt、$gte、$lt、$lte
  • 逻辑操作符($and、$or、$not、$nor
  • 元素操作符($exists、$type
  • 数组操作符($in、$nin、$all、$size

查询修饰符

  • 排序sort
  • 限制limit
  • 跳过skip
  • 投影projection

正则表达式查询

  • 正则表达式语法
  • 模糊查询实现
  • 性能考虑

聚合框架基础

  • 聚合管道概念
  • 常用聚合操作符
  • 分组和统计

实践环节

  • 复杂查询练习
  • 聚合查询实例
  • 查询性能测试

索引优化

索引基础

  • 索引原理和作用
  • B-Tree 索引结构
  • 索引的优缺点

索引类型

  • 单字段索引
  • 复合索引
  • 多键索引
  • 文本索引
  • 地理空间索引
  • 哈希索引

索引管理

  • 创建索引createIndex
  • 删除索引dropIndex
  • 查看索引getIndexes
  • 重建索引reIndex

查询性能优化

  • 执行计划分析explain
  • 索引选择策略
  • 查询优化技巧

实践环节

  • 索引创建和管理
  • 性能测试对比
  • 查询优化案例

数据建模

文档设计原则

  • 嵌入式文档 vs 引用
  • 数据冗余策略
  • 原子性考虑

Schema 设计模式

  • 一对一关系建模
  • 一对多关系建模
  • 多对多关系建模
  • 树形结构建模

数据验证

  • Schema 验证规则
  • 数据类型约束
  • 自定义验证器

实践环节

  • 电商系统数据建模
  • 社交网络数据建模
  • 内容管理系统建模

聚合框架

聚合管道详解

  • $match 阶段
  • $group 阶段
  • $sort 阶段
  • $project 阶段
  • $limit 和 $skip 阶段

高级聚合操作

  • $lookup关联查询
  • $unwind数组展开
  • $facet多维聚合
  • $bucket分桶聚合

聚合表达式

  • 算术表达式
  • 字符串表达式
  • 日期表达式
  • 条件表达式

MapReduce

  • MapReduce 概念
  • 编写 Map 和 Reduce 函数
  • 性能对比

实践环节

  • 数据分析报表
  • 实时统计系统
  • 复杂业务逻辑实现

副本集Replica Set

副本集概念

  • 高可用性需求
  • 副本集架构
  • 主从复制原理

副本集架构

  • Primary 节点
  • Secondary 节点
  • Arbiter 节点
  • 选举机制

副本集部署

  • 单机多实例部署
  • 多机部署
  • 配置文件设置
  • 初始化副本集

副本集管理

  • 添加和删除节点
  • 优先级设置
  • 故障转移测试
  • 数据同步监控

实践环节

  • 副本集搭建
  • 故障模拟和恢复
  • 性能测试

分片Sharding

分片概念

  • 水平扩展需求
  • 分片架构组件
  • 分片键选择

分片架构

  • Config Server
  • Shard Server
  • mongos 路由
  • 数据分布策略

分片部署

  • 分片集群搭建
  • 配置服务器部署
  • 路由服务器配置
  • 分片初始化

分片管理

  • 分片键管理
  • 数据均衡
  • 分片添加和删除
  • 性能监控

实践环节

  • 分片集群搭建
  • 数据分片测试
  • 扩容演练

安全管理

认证机制

  • 用户认证
  • 角色权限管理
  • LDAP 集成

授权控制

  • 基于角色的访问控制RBAC
  • 数据库级权限
  • 集合级权限

审计日志

  • 审计功能配置
  • 日志分析
  • 合规性要求

实践环节

  • 安全配置实施
  • 权限测试
  • 安全审计

备份与恢复

备份策略

  • 全量备份
  • 增量备份
  • 实时备份

备份工具

  • mongodump/mongorestore
  • 文件系统快照
  • 第三方备份工具

恢复策略

  • 完全恢复
  • 时间点恢复
  • 选择性恢复

备份自动化

  • 备份脚本编写
  • 定时任务配置
  • 备份验证

实践环节

  • 备份恢复演练
  • 自动化脚本开发
  • 灾难恢复测试

性能监控与调优

性能监控

  • mongostat 工具
  • mongotop 工具
  • 第三方监控工具

性能指标

  • 连接数监控
  • 操作延迟
  • 内存使用
  • 磁盘 I/O

性能调优

  • 查询优化
  • 索引优化
  • 硬件优化
  • 配置优化

故障诊断

  • 慢查询分析
  • 锁竞争分析
  • 内存泄漏排查

实践环节

  • 性能基准测试
  • 瓶颈分析
  • 调优实施