データベース コマンドの使用
MongoDB コマンド インターフェースは、すべての非 CRUDデータベース操作へのアクセスを提供します。 サーバー統計の取得、レプリカセットの初期化、集計パイプラインまたは map-reduce ジョブの実行はすべてコマンドで行います。
機能別にソートされたすべてのコマンドのリストについては、「データベースコマンド」を参照してください。
データベースコマンド フォーム
最初にコマンドを指定するには、コマンド名を最初のキーとする標準的なBSONドキュメントを作成します。たとえば、次の BSON ドキュメントを使用して hello
コマンドを指定します。
{ hello: 1 }
コマンドの発行
mongosh
はdb.runCommand()
というコマンドを実行するためのヘルパー メソッドを提供します。 mongosh
の次の操作は、前のコマンドを実行します。
db.runCommand( { hello: 1 } )
多くのドライバーはdb.runCommand()
メソッドと同等の を提供します。 内部的には、 db.runCommand()
とともにコマンドを実行することは、 $cmdコレクションに対する特別なクエリと同じです。
一般的なコマンドの多くには、mongosh
やドライバーに mongosh
の db.hello()
メソッドなどの専用 shell ヘルパーまたはラッパーがあります。
maxTimeMS
オプションを使用して、コマンドの実行時間制限を指定できます。操作の終了の詳細については、「コマンドの終了」を参照してください。
admin
データベース コマンド
管理データベースでいくつかのコマンドを実行する必要があります。通常、これらの操作は次のようになります。
use admin db.runCommand( {buildInfo: 1} )
ただし、admin
データベースのコンテキストでコマンドを自動的に実行するコマンド ヘルパーもあります。
db.adminCommand( {buildInfo: 1} )
コマンドの応答
すべてのコマンドについて、MongoDB は次のフィールドを含む応答ドキュメントを返します。
フィールド | 説明 |
---|---|
<command result> | 実行された command に固有の結果フィールド。 |
ok | コマンドが成功したか( 1 )失敗したか(0 )を示す数値。 |
operationTime | 実行された操作の論理時間。MongoDB では oplog エントリのタイムスタンプによって表されます。 レプリカセットとシャーディングされたクラスターのみ コマンドが oplog エントリを生成しない場合(読み取り操作など)、その操作では論理クロックは進みません。この場合、
因果的に一貫性のあるセッションに関連付けられた操作の場合、MongoDB ドライバーは論理時間を使用して、読み取り操作と バージョン 3.6 の新機能。 |
$clusterTime | 署名されたクラスター時間を返すドキュメント。クラスター時間は、操作の順序付けに使用される論理時間です。レプリカセットとシャーディングされたクラスターのみ。内部使用のみ。 このドキュメントには、以下のフィールドが含まれています。
バージョン 3.6 の新機能。 |