Du kan ændre din forespørgsel på denne måde:
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
}
Jeg tror, du manglede com.mongodb.client.model.Projections importerer for at bruge fields , include og excludeId
Jeg brugte first i stedet for limit(1) for at gøre det nemmere at udtrække resultatet.
first returnerer et Document objekt, som du kan kalde get på for at hente værdien af det anmodede felt.
Men faktisk, da du kun vil have én post og et felt, kan du fjerne projektionen!:
val record = collection.find().first