Puede modificar su consulta de esta manera:
import com.mongodb.MongoClient
import com.mongodb.client.MongoCollection
import com.mongodb.client.model.Projections
def getLatestCommitOffsetFromDB(
databaseName: String,
collectionName: String
): Long = {
val mongoClient = new MongoClient("localhost", 27017);
val collection =
mongoClient.getDatabase(databaseName).getCollection(collectionName)
val record = collection
.find()
.projection(
Projections
.fields(Projections.include("offset"), Projections.excludeId()))
.first
record.get("offset").asInstanceOf[Double].toLong
}
Creo que te faltaba com.mongodb.client.model.Projections importaciones para usar fields , include y excludeId
Usé first en lugar de limit(1) para que sea más fácil extraer el resultado.
first devuelve un Document objeto en el que puede llamar a get para recuperar el valor del campo solicitado.
Pero, de hecho, dado que solo desea un registro y un campo, ¡puede eliminar la proyección!:
val record = collection.find().first