命令是干什么的
mongosh 是 MongoDB 5.0 起随服务端发布的官方 Shell,用来替代旧版 mongo 客户端。它里的 use / show / help 不是查询语言,而是 Shell 层的上下文操作:确认当前连的是哪个库、库里有哪些集合、某个对象上有哪些方法可用。定位问题时先用这套命令看清结构,再决定从哪张集合、哪个字段入手,比直接猜字段名试查询稳得多。
基本信息
| 适用平台 | MongoDB 5.0+ 官方 Shell(mongosh 2.x) |
|---|---|
| 连接 | mongosh "mongodb://user:pass@host:27017/admin" |
| 切换库 | use app_inventory |
| 查看层级 | show dbs / show collections / show users |
| 上下文帮助 | help、db.help()、db.orders.help() |
会话示例
会话示例
mongosh "mongodb://app_rw@10.0.0.12:27017/admin" # 认证库写在连接串里
use app_inventory # 切换当前库,此时并不落库
db # 打印当前库名,确认上下文正确
show dbs # 列出有数据的库
show collections # 列出当前库的集合
show users # 列出当前库的账号
db.orders.help() # 打印集合级可用方法
db.orders.countDocuments() # 用方法确认集合可读典型使用场景
- 接手陌生实例:逐层确认库与集合结构,再规划查询
- 排查"库不见了":先看 show dbs 判断是没数据还是没权限
- 交接脚本前用 db.<coll>.help() 核对方法名,Shell 便捷方法与驱动方法并不完全同名
- 盘空间前先 show collections,再对可疑集合取 stats 看占用
- 权限核对:切到 admin 库查看用户与角色绑定关系
导航命令对照
| 命令 | 作用 | 注意 |
|---|---|---|
| show dbs | 列出有数据的库与磁盘占用 | 空库不出现 |
| show collections | 列出当前库集合 | 需先切库,权限不足会报错 |
| show users | 列出当前库账号 | 角色信息要到 admin 库查 |
| db.help() | 打印库级可用方法 | 帮助文本随版本变化 |
| db.<coll>.help() | 打印集合级方法 | 与驱动 API 不完全同名 |
use 一个不存在的库不会立刻创建它:第一次写入数据或显式建集合时才真正落库;空库不出现在 show dbs 列表中,这是排查"库丢了"最常见的原因。
db.<coll>.help() 列的是 Shell 封装的便捷方法,与各语言驱动 API 并不完全一一对应(例如计数在驱动侧对应 countDocuments),写进代码前以驱动文档为准。