SuperAPI AI 工具集

mongodb

数据与分析

查看项目

更新于 10-15 09:00

技能介绍

MongoDB 是一个面向文档的 NoSQL 数据库,本技能用于在开发与生产环境中管理、优化和保护 MongoDB 部署。

用途与适用场景

当你需要具备灵活模式的文档型数据库、数据为半结构化或高度嵌套(类似 JSON 文档)、需要通过分片实现水平扩展,或应用受益于丰富查询与聚合管道时,可以使用本技能。

前置条件

  • Linux 服务器(Debian/Ubuntu 或基于 RHEL)或 Docker。
  • 安装软件包所需的 root 或 sudo 权限。
  • 生产环境推荐 MongoDB 7.x(6.x 仍受支持)。

安装与初始化

资料提供了 Debian/Ubuntu 上安装 MongoDB 7 的步骤:导入 PGP 密钥、添加软件源、安装 mongodb-org、启动并启用 mongod,最后用 mongosh 验证版本。

初始用户设置方面,先以无认证方式连接,在 admin 库创建管理员用户(含 userAdminAnyDatabase、readWriteAnyDatabase、clusterAdmin 角色),再创建应用级用户(readWrite 角色)。随后在 /etc/mongod.conf 中启用认证(security.authorization: enabled),重启 mongod 后使用凭据连接。

mongosh 常用命令

资料列出了数据库与集合查看、文档插入(insertOne/insertMany)、查询(find/findOne/countDocuments,含 $gte 等条件、排序与限制)、更新(updateOne/updateMany,含 $set、$currentDate)、删除(deleteOne/deleteMany)等命令示例。

索引

涵盖单字段索引、复合索引、文本索引(配合 $text 搜索)、TTL 索引(自动过期删除)、列出与删除索引,以及用 explain("executionStats") 验证索引使用情况。

聚合管道

给出多个示例:按状态统计收入、按订单金额取前 5 名客户(含 $lookup 关联与 $unwind)、每日注册趋势($dateToString 分组)。

副本集

副本集至少需要三个成员(或两个数据节点加一个仲裁者)。资料给出每个成员的配置文件示例(含 replSetName、keyFile、authorization),用 openssl 生成共享 keyfile 并设置权限,复制到所有成员;随后用 rs.initiate 初始化,并用 rs.status、rs.printReplicationInfo、rs.printSecondaryReplicationInfo 查看状态与复制延迟。

备份与恢复

提供 mongodump 全量、单库、压缩备份示例,以及 mongorestore 全量恢复、单库恢复(--drop)、压缩恢复示例。

Docker Compose 部署

给出包含 mongo1/mongo2/mongo3 三个节点与 mongo-init 初始化服务的 docker-compose.yml 示例,含环境变量、卷、keyFile 挂载、健康检查与副本集初始化命令;并说明启动前生成 keyfile、启动命令与连接字符串。

监控查询

包括 serverStatus 的连接与操作计数、currentOp 查找长时间运行操作、集合统计与索引大小、慢查询分析器(setProfilingLevel 与 system.profile 查询)、副本集延迟查看。

配置调优

给出生产环境 /etc/mongod.conf 建议:启用 journal、WiredTiger cacheSizeGB 约为内存一半、blockCompressor 为 snappy、maxIncomingConnections、慢操作分析阈值等。

故障排查

以表格形式列出常见症状、可能原因与修复方法,例如 explain 出现 COLLSCAN(缺索引)、副本成员卡在 RECOVERING(oplog 窗口超限)、打开文件过多(文件描述符限制)、内存占用高(WiredTiger 缓存过大)、聚合管道慢($match 字段无索引)、认证失败(authenticationDatabase 错误)。

相关技能

资料提及 redis(作为 MongoDB 前的缓存层)、database-backups(自动化备份策略)、postgresql(替代的关系型数据库)。

限制

资料未提供具体收费、价格、平台支持范围或性能基准等信息,这些内容暂未提供。