Você pode modificar sua consulta desta forma:
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
}
Acho que você estava perdendo o
com.mongodb.client.model.Projections importações para usar fields , include e excludeId Eu usei
first em vez de limit(1) para facilitar a extração do resultado. first retorna um Document objeto no qual você pode chamar get para recuperar o valor do campo solicitado. Mas, na verdade, como você quer apenas um registro e um campo, pode remover a projeção!:
val record = collection.find().first