返回顶部
m

mongodb-adminMongoDB管理

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.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
115
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

mongodb-admin

MongoDB Admin

完整的MongoDB管理工具包,用于数据库管理、性能优化、备份/恢复操作以及副本集管理。涵盖本地和远程MongoDB实例。

前提条件

  • - 已安装MongoDB(服务器和/或客户端工具)
  • mongosh(MongoDB Shell)或旧版mongo客户端
  • mongodump和mongorestore工具
  • 适当的数据库权限
  • 对目标MongoDB实例的网络访问

使用方法

连接管理

基本连接:
bash

本地实例


mongosh

远程实例

mongosh mongodb://localhost:27017/mydb mongosh mongodb://user:pass@host:27017/mydb

带认证

mongosh --host localhost --port 27017 --username admin --password --authenticationDatabase admin

SSL/TLS连接

mongosh mongodb://host:27017/mydb?ssl=true

连接字符串示例:
bash

本地开发


mongosh mongodb://localhost:27017/clawdmemorydb

远程带认证

mongosh mongodb://dbuser:password@10.0.0.100:27017/production_db?authSource=admin

副本集

mongosh mongodb://node1:27017,node2:27017,node3:27017/mydb?replicaSet=rs0

MongoDB Atlas

mongosh mongodb+srv://username:password@cluster0.abcde.mongodb.net/mydb

数据库操作

数据库管理:
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

备份整个数据库


mongodump --host localhost:27017 --db mydb --out /backup/$(date +%Y%m%d)

带认证备份

mongodump --host localhost:27017 --username admin --password --authenticationDatabase admin --db mydb --out /backup/

备份特定集合

mongodump --host localhost:27017 --db mydb --collection users --out /backup/

压缩备份

mongodump --host localhost:27017 --db mydb --gzip --out /backup/

恢复数据库

mongorestore --host localhost:27017 --db mydb /backup/mydb

恢复为不同名称

mongorestore --host localhost:27017 --db newdb /backup/mydb

恢复特定集合

mongorestore --host localhost:27017 --db mydb --collection users /backup/mydb/users.bson

自动备份脚本:
bash
#!/bin/bash

mongodb-backup.sh

DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR=/var/backups/mongodb
DBNAME=clawdmemory_db

echo 开始MongoDB备份:$DATE

创建备份目录

mkdir -p $BACKUP_DIR/$DATE

执行备份

mongodump --host localhost:27017 --db $DBNAME --gzip --out $BACKUPDIR/$DATE

检查备份是否成功

if [ $? -eq 0 ]; then echo ✅ 备份完成:$BACKUP_DIR/$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

导出集合为JSON


mongoexport --host localhost:27017 --db mydb --collection users --out users.json

带查询条件导出

mongoexport --host localhost:

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 mongodb-admin-toolkit-1776015138 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 mongodb-admin-toolkit-1776015138 技能

通过命令行安装

skillhub install mongodb-admin-toolkit-1776015138

下载

⬇ 下载 mongodb-admin v1.0.0(免费)

文件大小: 4.01 KB | 发布时间: 2026-4-13 11:05

v1.0.0 最新 2026-4-13 11:05
Initial release: Complete MongoDB administration toolkit

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部