Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/ / /
Kotlin Sync ドライバー

データベースコマンドの実行

このガイドでは、 Kotlin Syncドライバーを使用してデータベースコマンドを実行する方法を学習できます。データベースコマンドを使用して、サーバー統計の取得、レプリカセットを初期化、集計パイプラインの実行中など、さまざまな管理および診断タスクを実行できます。

重要

データベースコマンドよりもドライバー メソッドを優先

このドライバーは、多くのデータベース コマンドのラッパー メソッドを提供します。 可能な場合は、データベースコマンドを実行する代わりにドライバー メソッドを使用することをお勧めします。

管理タスクを実行するには、 Kotlin Syncドライバー の代わりに MongoDB Shell を使用します。データベースコマンドを発行するには、 シェル内で db.runCommand() メソッドを呼び出す方法がおすすめです。これにより、 シェルとドライバー間の一貫したインターフェースが提供されます。

データベースコマンド を実行するには、コマンドとドキュメントで関連するパラメータを指定し、そのドキュメントをrunCommand() メソッドに渡します。

次のコードは、runCommand() メソッドを使用して explain コマンドを実行する方法を示しています。このコマンドを呼び出すと、find コマンドの実行方法に関する説明が返されます。

val commandToExplain = Document("find", "restaurants")
val explanation = database.runCommand(Document("explain", commandToExplain))

データベースコマンドと対応するパラメータの完全なリストについては、データベースコマンドガイドを参照してください。

readPreference パラメータを含めることで、runCommand() メソッドで任意のコマンド動作を指定できます。次の例は、読み込み設定 (read preference)を指定し、それをオプションとして runCommand() メソッドに渡す方法を示しています。

val command = Document("hello", 1)
val commandReadPreference = Document("readPreference", "secondary")
val commandResult = database.runCommand(command, commandReadPreference)

読み込み設定(read preference)オプションの詳細については、サーバー マニュアルの読み込み設定(read preference) を参照してください。

注意

runCommand() メソッドは、databaseオブジェクトに設定した読み込み設定(読み込み設定 (read preference) )を無視します。読み込み設定 (read preference)が指定されていない場合、このメソッドは primary読み込み設定 (read preference)を使用します。

runCommand() メソッドは、コマンド実行後のデータベースからの応答を含む Documentオブジェクトを返します。 各データベースコマンドは異なる機能を実行するため、応答内容はコマンド間で異なる可能性があります。 ただし、すべての応答には次のフィールドを持つドキュメントが含まれます。

フィールド
説明

<command result>

データベースコマンド に固有のフィールドを提供します。 たとえば、 countnフィールドを返し、 explainqueryPlannerフィールドを返します。

ok

コマンドが成功(1)したか失敗(0)したかを示します。

operationTime

操作の論理時間を示します。 MongoDBは論理時間を使用して操作を順序付けます。 論理時間の詳細については、 グローバル論理クロック に関するブログ記事をご覧ください。

$clusterTime

署名されたクラスター時間を返すドキュメントを提供します。 クラスター時間は、操作の順序付けに使用される論理時間です。

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

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

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

次の例は、buildInfo コマンドの実行方法と、それによって生成される出力を示しています。

import com.mongodb.MongoException
import com.mongodb.kotlin.client.MongoClient
import org.bson.Document
import org.bson.BsonInt64
import org.bson.json.JsonWriterSettings
fun main() {
// Replace the placeholder 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 = Document("buildInfo", 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()
}
{
version: '8.0.4',
...<other command results>...
ok: 1,
'$clusterTime': {
clusterTime: Timestamp({ ... }),
signature: {
...
}
},
operationTime: Timestamp({ ... })
}

このガイドの概念の詳細については、次のドキュメントを参照してください。

戻る

Atlas Search と Vector Search インデックス

項目一覧