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