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