运行命令
您可以使用以下方式运行所有原始数据库操作:MongoDatabase.runCommand()
方法。原始数据库操作是在 MongoDB 服务器 CLI 上可以直接执行的一个命令。这些命令包括管理性和诊断任务,例如获取服务器统计信息或初始化副本集。在 MongoDatabase
实例上使用 Bson
命令对象调用 runCommand()
方法以执行您的原始数据库操作。
提示
尽可能使用MongoDB Shell 来执行管理任务,而不是 Kotlin 驱动程序,因为这些任务通常使用 shell 比 Kotlin 应用程序更快、更容易实现。
runCommand()
方法接受一个 Bson
对象形式的命令。默认情况下,runCommand
返回一个包含数据库命令输出的 org.bson.Document
类型的对象。您可以将返回类型作为可选的第二个参数指定给 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() }
{ "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 服务器手册条目