Можете да промените заявката си по този начин:
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
}
Мисля, че сте пропуснали com.mongodb.client.model.Projections импортира, за да използва fields , include и excludeId
Използвах first вместо limit(1) за да улесните извличането на резултата.
first връща Document обект, на който можете да извикате get за извличане на стойността на заявеното поле.
Но всъщност, тъй като искате само един запис и едно поле, можете да премахнете проекцията!:
val record = collection.find().first