mongodb - Kotlin Coroutines 是否有一个好的库可以异步访问 Mongo?
问题描述
我正在 JVM 中启动一个具有大量 IO 的新项目。在某些时候,我必须在 Mongo 数据库中保存一些东西。我的想法是对 Kotlin 协程使用非阻塞方法。
我知道 Mongo 有一个官方的响应式流驱动程序,并且支持看起来不错。但在这种情况下,我需要在流和协程之间“创建桥梁”。我的问题是关于这一点:有人知道更好或更简单的方法吗?
解决方案
import org.litote.kmongo.reactivestreams.* //NEEDED! import KMongo reactivestreams extensions
import org.litote.kmongo.coroutine.* //NEEDED! import KMongo coroutine extensions
data class Jedi(val name: String, val age: Int)
val client = KMongo.createClient().coroutine //use coroutine extension
val database = client.getDatabase("test") //normal java driver usage
val col = database.getCollection<Jedi>() //KMongo extension method
//async now
runBlocking {
col.insertOne(Jedi("Luke Skywalker", 19))
val yoda : Jedi? = col.findOne(Jedi::name eq "Yoda")
(...)
}
推荐阅读
- python - 将多个单位转换为 TB 并使用 Python 执行计算
- c# - dotnet 测试运行设置抛出 MSBUILD:错误 MSB1001:未知开关
- docker - 如何在不断退出的容器中启动交互式 shell?
- python - 在 Python 中有效地查找两个数组的 L3 范数
- python - 将迭代器连接到变量名
- r - 有没有办法删除用 geom_sf_text 制作的标签周围的边框?
- tensorflow - 无法导入名称“fpn_pb2”
- ios - 获取带麦克风的录音机的频率
- metatrader4 - 为什么我的计算与 metatrader 4 回测损失不匹配?
- java - Hazelcast 缓存 - 打印太多日志(忽略来自 [10.10.10.10]:5702 的连接检查,因为此节点不是主节点...)