コマンドの実行
MongoDatabase.runCommand()
メソッドを使用して、すべての未加工データベース操作を実行できます。 Raw データベース操作は、MongoDB サーバー CLI で直接実行できるコマンドです。 これらのコマンドには、サーバーの統計情報の取得やレプリカセットの初期化など、管理および診断タスクが含まれます。 MongoDatabase
のインスタンスでBson
コマンド オブジェクトを使用してrunCommand()
メソッドを呼び出し、未加工のデータベース操作を実行します。
Tip
これらのタスクは Kotlin アプリケーションよりも shell で実装する方が速くて簡単であるため、可能な場合は常に Kotlin ドライバーではなくMongoDB Shellを管理タスクに使用します。
runCommand()
メソッドはBson
オブジェクト形式のコマンドを受け入れます。 デフォルトでは、 runCommand
はデータベースコマンドの出力を含むorg.bson.Document
型のオブジェクトを返します。 任意の 2 つ目のパラメータとして、 runCommand()
の戻り値の型を指定できます。
例
次のサンプル コードでは、特定の MongoDB database から統計情報をリクエストするために、 dbStats
コマンドを送信します。
注意
この例では、接続 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() }
{ "db": "sample_mflix", "collections": 5, "views": 0, "objects": 75595, "avgObjSize": 692.1003770090614, "dataSize": 52319328, "storageSize": 29831168, "numExtents": 0, "indexes": 9, "indexSize": 14430208, "fileSize": 0, "nsSizeMB": 0, "ok": 1 }
このページで言及されているクラスとメソッドについての追加情報については、次のリソースを参照してください。
runCommand() API ドキュメント
データベース コマンドサーバー マニュアル エントリ
dbStats Server マニュアル エントリ