Overview
このガイドでは、 Kotlinドライバー を使用してデータベースコマンドを実行する方法を学習できます。データベースコマンドを使用して、サーバー統計の取得、レプリカセットを初期化、集計パイプライン の実行中など、さまざまな管理および診断タスクを実行できます。
重要
データベースコマンドよりもドライバー メソッドを優先
このドライバーは、多くのデータベース コマンドのラッパー メソッドを提供します。 可能な場合は、データベースコマンドを実行する代わりにドライバー メソッドを使用することをお勧めします。
To perform administrative tasks, use the MongoDB Shell instead of the Kotlin driver. Calling the db.runCommand() method inside the shell is the preferred method to issue database commands, as it provides a consistent interface between the shell and drivers.
コマンドの実行
データベースコマンド を実行するには、コマンドとドキュメントで関連するパラメータを指定し、そのドキュメントをrunCommand() メソッドに渡します。
次のコードは、runCommand() メソッドを使用して dbStats コマンドを実行する方法を示しています。このコマンドは、指定されたMongoDBデータベースから統計を返します。
注意
この例では、接続 URI を使用してMongoDBのインスタンスに接続します。MongoDBインスタンスへの接続の詳細については、接続ガイドを参照してください。
import com.mongodb.MongoException import com.mongodb.kotlin.client.coroutine.MongoClient import kotlinx.coroutines.runBlocking import org.bson.BsonDocument import org.bson.BsonInt64 import org.bson.json.JsonWriterSettings fun main() = runBlocking { // Replace the uri string with your MongoDB deployment's connection string val uri = "<connection string uri>" val mongoClient = MongoClient.create(uri) val database = mongoClient.getDatabase("sample_mflix") try { val command = BsonDocument("dbStats", BsonInt64(1)) val commandResult = database.runCommand(command) println(commandResult.toJson(JsonWriterSettings.builder().indent(true).build())) } catch (me: MongoException) { System.err.println("An error occurred: $me") } mongoClient.close() }
データベースコマンドと対応するパラメータの完全なリストについては、データベースコマンドガイドを参照してください。
コマンド オプション
readPreference パラメータを含めることで、runCommand() メソッドで任意のコマンド動作を指定できます。次の例は、読み込み設定 (read preference)を指定し、それをオプションとして runCommand() メソッドに渡す方法を示しています。
val command = Document("hello", 1) val commandReadPreference = Document("readPreference", "secondary") val result = database.runCommand(command, commandReadPreference)
読み込み設定(read preference)オプションの詳細については、サーバー マニュアルの読み込み設定(read preference) を参照してください。
注意
runCommand() メソッドは、databaseオブジェクトに設定した読み込み設定(読み込み設定 (read preference) )を無視します。読み込み設定 (read preference)を指定しない場合、このメソッドは primary読み込み設定 (read preference)を使用します。
応答
runCommand() メソッドは、コマンド実行後のデータベースからの応答を含む Documentオブジェクトを返します。 各データベースコマンドは異なる機能を実行するため、応答内容はコマンド間で異なる可能性があります。 ただし、すべての応答には次のフィールドを持つドキュメントが含まれます。
フィールド | 説明 |
|---|---|
<command result> | データベースコマンド に固有のフィールドを提供します。 たとえば、 |
| コマンドが成功( |
| 操作の論理時間を示します。MongoDB は論理時間を使用して操作を順序付けます。論理時間の詳細については、弊社のグローバル論理クロックに関するブログ記事をご覧ください。 |
| 署名されたクラスター時間を返すドキュメントを提供します。クラスター時間は、順序操作に使用される論理時間です。 このドキュメントには、以下のフィールドが含まれています。
|
詳細情報
このガイドの概念の詳細については、次のドキュメントを参照してください。