runCommand()(执行命令)
最后更新:2026-10-09
runCommand()(执行命令)
db.runCommand() 在 mongosh 中执行任意数据库命令,是访问那些没有专门辅助方法的底层命令(如 serverStatus、collStats、currentOp)的通用入口。大多数命令都有对应的辅助方法(如 db.collection.stats()),但 runCommand 提供完整控制。
| 分类 | 管理命令 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
db.runCommand({ <命令名>: <参数>, ... })
⚙️ 参数
| 命令名 | 命令文档第一个字段,值为该命令的参数对象 |
|---|
返回值:命令执行结果文档,含ok字段(1成功、0失败)与各命令专有字段
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// runCommand:查看数据库统计
db.runCommand({ dbStats: 1 })
// 查看集合统计
db.runCommand({ collStats: "orders" })
运行结果:
{
db: "shop",
collections: 5,
objects: 1200,
dataSize: 48213,
ok: 1
}
📌 注意事项
- 命令文档第一个字段是命令名,值是其参数
- ok: 1 表示成功,ok: 0 表示失败(errmsg 含原因)
- 多数命令有辅助方法,优先用辅助方法更可读
- 权限不足时返回 unauthorized 错误
🏷️ 相关标签
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
QrunCommand 和辅助方法什么关系?
A辅助方法(如 db.stats())内部就是调用 runCommand,只是封装了参数与结果解析。runCommand 是底层通用入口。
Q如何查看命令返回的帮助信息?
A在命令参数中加$help: 1,例如db.runCommand({ serverStatus: 1, $help: 1 })。
Q为什么有的命令必须用adminCommand?
A管理类命令(renameCollection、setParameter等)作用域在admin库,只能用db.adminCommand执行。