I have a Scala 3 app using zio and zio-kafka.
The app also needs to connect to mongo db but I cant find any library which will let to do that.
the official scala driver for mongo is only for scala 2.12
I found mongo4cats but I don’t know how to convert a cats.effect.IO[A]
to ZIO[R,E,A]
using interop.
This is my sample mongo insert method
package com.example.testApp
import cats.effect.*
import com.mongodb.client.result.InsertOneResult
import mongo4cats.client.MongoClient
import mongo4cats.bson.Document
object DbOperationCats {
def insert: IO[Unit] =
val client = MongoClient.fromConnectionString[cats.effect.IO](
"mongodb://root:example@localhost:27017"
)
client.use { c =>
for {
_ <- IO.println("Starting session...")
session <- c.startSession
d <- c.getDatabase("sample-db")
col <- d.getCollection("sample-collection")
a <- col.insertOne(session, Document("name" -> "bilal"))
_ <- IO.println("inserted")
} yield ()
}
}