# 基础概念 ## 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 ## 性能调优 - 查询优化 - 索引优化 - 硬件优化 - 配置优化 ## 故障诊断 - 慢查询分析 - 锁竞争分析 - 内存泄漏排查 ## 实践环节 - 性能基准测试 - 瓶颈分析 - 调优实施 ---