Comprehensive MongoDB administration including connection management, backup/restore operations, performance analysis, index management, user administration, and replica set configuration. Supports both mongosh and legacy mongo shell commands.
完整的MongoDB管理工具包,用于数据库管理、性能优化、备份/恢复操作以及副本集管理。涵盖本地和远程MongoDB实例。
基本连接:
bash
连接字符串示例:
bash
数据库管理:
javascript
// 列出数据库
show dbs
// 切换到数据库
use mydb
// 删除数据库
db.dropDatabase()
// 数据库统计
db.stats()
db.runCommand({dbStats: 1, scale: 1024*1024}) // 以MB为单位
集合操作:
javascript
// 列出集合
show collections
// 创建集合
db.createCollection(users)
db.createCollection(logs, {capped: true, size: 10000000, max: 1000})
// 删除集合
db.users.drop()
// 集合统计
db.users.stats()
使用mongodump/mongorestore:
bash
自动备份脚本:
bash
#!/bin/bash
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR=/var/backups/mongodb
DBNAME=clawdmemory_db
echo 开始MongoDB备份:$DATE
# 创建最新备份的符号链接
ln -sfn $BACKUPDIR/$DATE $BACKUPDIR/latest
# 清理旧备份(保留7天)
find $BACKUP_DIR -type d -name 2* -mtime +7 -exec rm -rf {} \;
else
echo ❌ 备份失败!
exit 1
fi
查询性能:
javascript
// 启用性能分析
db.setProfilingLevel(2) // 分析所有操作
db.setProfilingLevel(1, {slowms: 100}) // 仅分析慢查询
// 查看慢查询
db.system.profile.find().limit(5).sort({ts: -1}).pretty()
// 查找慢查询
db.system.profile.find({millis: {$gt: 100}}).sort({ts: -1}).pretty()
// 禁用性能分析
db.setProfilingLevel(0)
服务器状态和指标:
javascript
// 服务器状态
db.serverStatus()
// 当前操作
db.currentOp()
// 终止长时间运行的操作
db.killOp(opid)
// 数据库统计
db.stats()
// 集合统计
db.users.stats()
连接监控:
javascript
// 当前连接数
db.serverStatus().connections
// 活跃连接
db.runCommand({connPoolStats: 1})
// 列出当前会话
db.aggregate([{$listSessions: {}}])
创建索引:
javascript
// 单字段索引
db.users.createIndex({email: 1})
// 复合索引
db.users.createIndex({email: 1, createdAt: -1})
// 文本搜索索引
db.articles.createIndex({title: text, content: text})
// 部分索引
db.users.createIndex({email: 1}, {partialFilterExpression: {active: true}})
// TTL索引(自动过期文档)
db.sessions.createIndex({expireAt: 1}, {expireAfterSeconds: 0})
// 后台创建索引
db.users.createIndex({email: 1}, {background: true})
索引分析:
javascript
// 列出索引
db.users.getIndexes()
// 索引使用统计
db.users.aggregate([{$indexStats: {}}])
// 解释查询执行计划
db.users.find({email: test@example.com}).explain(executionStats)
// 删除索引
db.users.dropIndex({email: 1})
db.users.dropIndex(email_1)
数据库用户:
javascript
// 创建管理员用户
db.createUser({
user: admin,
pwd: securepassword,
roles: [{role: userAdminAnyDatabase, db: admin}]
})
// 创建数据库特定用户
db.createUser({
user: appuser,
pwd: apppassword,
roles: [
{role: readWrite, db: mydb},
{role: read, db: analytics}
]
})
// 更新用户
db.updateUser(appuser, {
roles: [{role: dbOwner, db: mydb}]
})
// 更改密码
db.changeUserPassword(appuser, newpassword)
// 列出用户
db.getUsers()
// 删除用户
db.dropUser(appuser)
自定义角色:
javascript
// 创建自定义角色
db.createRole({
role: dataAnalyst,
privileges: [
{resource: {db: analytics, collection: }, actions: [find, listIndexes]},
{resource: {db: logs, collection: }, actions: [find]}
],
roles: []
})
// 为用户授予角色
db.grantRolesToUser(analyst, [dataAnalyst])
初始化副本集:
javascript
// 初始化副本集
rs.initiate({
_id: rs0,
members: [
{_id: 0, host: mongo1:27017},
{_id: 1, host: mongo2:27017},
{_id: 2, host: mongo3:27017}
]
})
副本集操作:
javascript
// 检查副本集状态
rs.status()
// 检查配置
rs.conf()
// 添加成员
rs.add(mongo4:27017)
// 移除成员
rs.remove(mongo4:27017)
// 降级主节点
rs.stepDown()
// 强制重新配置
rs.reconfig(config, {force: true})
JSON导入/导出:
bash
该技能支持在以下平台通过对话安装:
帮我安装 SkillHub 和 mongodb-admin-toolkit-1776015138 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 mongodb-admin-toolkit-1776015138 技能
skillhub install mongodb-admin-toolkit-1776015138
文件大小: 4.01 KB | 发布时间: 2026-4-13 11:05