Docs Menu
Docs Home
/
MongoDBマニュアル

データベース コマンドの使用

項目一覧

  • データベースコマンド フォーム
  • コマンドの発行
  • admin データベース コマンド
  • コマンドの応答

MongoDB コマンド インターフェースは、すべての非 CRUDデータベース操作へのアクセスを提供します。 サーバー統計の取得、レプリカセットの初期化、集計パイプラインまたは map-reduce ジョブの実行はすべてコマンドで行います。

機能別にソートされたすべてのコマンドのリストについては、「データベースコマンド」を参照してください。

最初にコマンドを指定するには、コマンド名を最初のキーとする標準的なBSONドキュメントを作成します。たとえば、次の BSON ドキュメントを使用して hello コマンドを指定します。

{ hello: 1 }

mongoshdb.runCommand()というコマンドを実行するためのヘルパー メソッドを提供します。 mongoshの次の操作は、前のコマンドを実行します。

db.runCommand( { hello: 1 } )

多くのドライバーdb.runCommand()メソッドと同等の を提供します。 内部的には、 db.runCommand()とともにコマンドを実行することは、 $cmdコレクションに対する特別なクエリと同じです。

一般的なコマンドの多くには、mongosh やドライバーに mongoshdb.hello() メソッドなどの専用 shell ヘルパーまたはラッパーがあります。

maxTimeMS オプションを使用して、コマンドの実行時間制限を指定できます。操作の終了の詳細については、「コマンドの終了」を参照してください。

管理データベースでいくつかのコマンドを実行する必要があります。通常、これらの操作は次のようになります。

use admin
db.runCommand( {buildInfo: 1} )

ただし、admin データベースのコンテキストでコマンドを自動的に実行するコマンド ヘルパーもあります。

db.adminCommand( {buildInfo: 1} )

すべてのコマンドについて、MongoDB は次のフィールドを含む応答ドキュメントを返します。

フィールド
説明
<command result>
実行された command に固有の結果フィールド。
ok
コマンドが成功したか(1)失敗したか(0)を示す数値。
operationTime

操作の論理的な時間。MongoDB は論理時間を使用して操作を順序付けます。レプリカセットとシャーディングされたクラスターのみ。

コマンドが oplog エントリを生成しない場合(読み取り操作など)、その操作では論理クロックは進みません。この場合、 operationTime は、次を返します。

  • 読み取り対象 "local""snapshot"、および "linearizable" の場合、oplog 内の最新エントリのタイムスタンプ。

  • 読み取りコンテント "majority" の場合、oplog 内の最新の majority-acknowledged エントリのタイムスタンプ。

因果的に一貫性のあるセッションに関連付けられた操作の場合、MongoDB ドライバーは論理時間を使用して、読み取り操作と afterClusterTime 期間を自動的に設定します。

$clusterTime

署名されたクラスター時間を返すドキュメント。クラスター時間は、操作の順序付けに使用される論理時間です。レプリカセットとシャーディングされたクラスターのみ。内部使用のみ。

このドキュメントには、以下のフィールドが含まれています。

  • clusterTime: ノードの最も高い既知のクラスター時間のタイムスタンプ。

  • signature: クラスター時間のハッシュとクラスター時間の署名に使用されたキーの ID を含むドキュメント。

次へ

MongoDB とは?