runCommand() (コマンドの実行)
最終更新:2026-10-09
runCommand() (コマンドの実行)
db.runCommand() は mongosh で任意のデータベースコマンドを実行します。専用ヘルパーのない低レベルコマンド(serverStatus、collStats、currentOp など)の汎用エントリポイントです。多くのコマンドにはヘルパーメソッド(例: db.collection.stats())がありますが、runCommand は完全な制御を提供します。
| カテゴリ | 管理コマンド |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
db.runCommand({ <command>: <args>, ... })
⚙️ パラメータ
| コマンド名 | コマンドドキュメントの最初のフィールド。その値が引数オブジェクトです。 |
|---|
戻り値: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 とヘルパーメソッドの関係は?
Adb.stats() などのヘルパーは内部で runCommand を呼び、引数と結果の解析をラップしています。runCommand が基盤となる汎用エントリです。
Qコマンドのヘルプはどう見ますか?
A引数に $help: 1 を追加します。例: db.runCommand({ serverStatus: 1, $help: 1 })。
Q一部のコマンドが adminCommand を要求するのはなぜ?
Aadmin スコープのコマンド(renameCollection、setParameter など)は admin データベースに存在し、db.adminCommand が必要です。