文档菜单
文档首页
/ / /
Kotlin 协程
/

运行命令

您可以使用以下方式运行所有原始数据库操作: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
}

有关本页面上提到的类和方法的更多信息,请参阅以下资源

返回

字段值去重