用于调试和故障排查,查询MongoDB数据库。用户需要时可以: (1) 列出所有数据库; (2) 列出数据库中的集合; (3) 执行MongoDB查询或命令。
MongoDB 查询器 查询器 自动连接处理器是一项面向实际任务的技能,主要用于依赖性 :.;Python 3. 6 = pymongo 包: pip sind pymongo. kubectl( 仅限 ne)。
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
使用自动连接管理功能查询 MongoDB(支持直连 IP 或通过 Kubernetes port-forward 连接)。
依赖项:
pymongo 包:pip install pymongokubectl(仅在通过 port-forward 连接 Kubernetes 服务时需要)该智能体在使用此技能前,必须向用户询问 MongoDB 连接信息。
所需信息如下:
MongoDB 连接字符串(必需):包含认证凭据的完整连接 URI
mongodb://root:password@172.16.79.249:27017/?authSource=admin&replicaSet=rs0mongodb://root:password@mongodb.mongodb.svc.cluster.local:27017/?authSource=adminKubernetes 命名空间(可选):仅当 MongoDB 地址为 Kubernetes 服务名时需要
建议:将连接信息保存至项目 TOOLS.md 文件中以供后续参考:
### MongoDB - mongo_conn_str: mongodb://user:pass@host:port/?options - mongo_namespace: (可选 - 仅当为 K8s 服务名时)
脚本会根据连接 URI 中的 host 自动识别连接类型:
| 地址类型 | 连接方式 |
|---|---|
IP 地址(例如:172.16.79.249:27017) |
直连 |
K8s 服务(例如:mongodb.mongodb.svc.cluster.local:27017) |
kubectl port-forward |
# 列出所有数据库 python scripts/query_mongo.py --uri "mongodb://user:pass@host:27017/?authSource=admin" --list-dbs # 列出某数据库中的所有集合 python scripts/query_mongo.py --uri "mongodb://user:pass@host:27017/?authSource=admin" --db--list-collections # 执行查询 python scripts/query_mongo.py --uri "mongodb://user:pass@host:27017/?authSource=admin" --db --collection --query '{"status": "active"}' # 若使用 K8s 服务名,则需指定命名空间 python scripts/query_mongo.py --uri "mongodb://user:pass@svc.ns.svc.cluster.local:27017/?authSource=admin" --list-dbs --namespace mongodb
| 参数 | 说明 | 是否必需 |
|---|---|---|
--uri |
MongoDB 连接字符串 | 是 |
--list-dbs |
列出所有数据库 | 否 |
--db |
数据库名称 | 执行集合或查询操作时必需 |
--list-collections |
列出数据库中的所有集合 | 否 |
--collection |
集合名称 | 执行查询操作时必需 |
--query |
以 JSON 格式表示的 MongoDB 查询语句 | 否 |
--namespace |
Kubernetes 命名空间(当 host 为 K8s 服务名时必需) | 条件必需 |
--limit |
限制返回结果数量(默认值:10) | 否 |
--json |
以原始 JSON 格式输出结果 | 否 |
# 列出所有数据库
python scripts/query_mongo.py --uri "mongodb://root:pass@172.16.79.249:27017/?authSource=admin" --list-dbs
# 查找活跃用户
python scripts/query_mongo.py --uri "mongodb://root:pass@172.16.79.249:27017/?authSource=admin" --db production --collection users --query '{"status": "active"}'
# 按 ObjectId 查询
python scripts/query_mongo.py --uri "mongodb://root:pass@172.16.79.249:27017/?authSource=admin" --db production --collection users --query '{"_id": {"$oid": "507f1f77bcf86cd799439011"}}'
# 限制结果数量
python scripts/query_mongo.py --uri "mongodb://root:pass@172.16.79.249:27017/?authSource=admin" --db production --collection logs --query '{"level": "ERROR"}' --limit 20
# Kubernetes 服务模式
python scripts/query_mongo.py --uri "mongodb://root:pass@mongodb.mongodb.svc.cluster.local:27017/?authSource=admin" --db production --collection users --query '{}' --namespace mongodb