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