db.runCommand()
定義
db.runCommand(command, [options])
指定されたデータベース コマンドを実行するためのヘルパーを提供します。これは、shell とドライバー間の一貫したインターフェースを提供するため、データベース コマンドを発行するための推奨される方法です。
Parameterタイプ説明command
ドキュメントまたは文字列コマンドを指定するドキュメントまたは文字列。文字列として指定すると、db.runCommand()
文字列をドキュメントに変換します。options
ドキュメントmongosh 2.0 以降では、mongosh
がコマンドを実行する方法を指定するオプションです。options.readPreference
コマンドを実行するための読み取り設定。指定されていない場合は、デフォルトで
primary
になります。db.runCommand()
は、setReadPref()
の使用や、接続文字列 でのreadPreference
の指定など、その他の読み取り設定グローバル構成セットを無視します。mongosh 1.x では、
db.runCommand()
はoptions
引数を取りません。読み取り設定を設定するには、Mongo.setReadPref()
を使用するか、接続文字列でreadPreference
を指定します。ミリ秒単位で時間制限を指定するには、「実行中の操作を終了する」を参照してください。
動作
db.runCommand()
は、現在のデータベースのコンテキストでコマンドを実行します。一部のコマンドは admin
データベースのコンテキストでのみ適用可能であり、これらのコマンドを実行する前に db
オブジェクトを変更するか、db.adminCommand()
を使用する必要があります。
読み込み設定 (read preference)
mongosh 2.0 以降では、オプション引数を使用して、コマンドの読み込み設定(read preference)を指定できます。読み込み設定(read preference)を指定しない場合、 db.runCommand()
はデフォルトで primary
になります。
警告
mongosh 2.0 では、db.runCommand()
は、Mongo.setReadPref()
の使用や接続文字列での readPreference
の指定など、その他の読み取り設定グローバル構成セットを無視します。
mongosh 1.x では、db.runCommand()
は options
引数を取りません。db.runCommand()
は、Mongo.setReadPref()
を使用するか、接続文字列で readPreference
を指定して指定された読み取り設定を使用します。
例
次の例は、db.runCommand()
を使用してデータベース コマンドを実行する方法を示しています。
読み込み設定(read preference)が指定されていない hello コマンド
この例では、db.runCommand()
を使用して hello
コマンドを実行する方法を示します。
db.runCommand( { hello: 1 } )
出力について詳しくは、「hello 出力」を参照してください。
読み込み設定(read preference)の動作の詳細については、 「読み込み設定(read preference)」 を参照してください。
readPreference: secondaryPreferred を使用した hello コマンド
この例では、db.runCommand()
を使用して、hello
コマンドを secondaryPreferred
読み取り設定で実行する方法を示しています。
db.runCommand( { hello: 1 }, { readPreference: "secondaryPreferred" } )
出力について詳しくは、「hello 出力」を参照してください。
読み込み設定(read preference)の動作の詳細については、 「読み込み設定(read preference)」 を参照してください。
応答
このメソッドは、次のフィールドを含む応答ドキュメントを返します。
フィールド | 説明 |
---|---|
<command result> | 実行された command に固有の結果フィールド。 |
ok | コマンドが成功したか( 1 )失敗したか(0 )を示す数値。 |
operationTime | 操作の論理的な時間。MongoDB は論理時間を使用して操作を順序付けます。レプリカセットとシャーディングされたクラスターのみ。 コマンドが oplog エントリを生成しない場合(読み取り操作など)、その操作では論理クロックは進みません。この場合、
因果的に一貫性のあるセッションに関連付けられた操作の場合、MongoDB ドライバーは論理時間を使用して、読み取り操作と |
$clusterTime | 署名されたクラスター時間を返すドキュメント。クラスター時間は、操作の順序付けに使用される論理時間です。レプリカセットとシャーディングされたクラスターのみ。内部使用のみ。 このドキュメントには、以下のフィールドが含まれています。
|