Svůj dotaz můžete upravit takto:
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
}
Myslím, že vám chyběl com.mongodb.client.model.Projections
importuje za účelem použití fields
, include
a excludeId
Použil jsem first
místo limit(1)
aby bylo snazší extrahovat výsledek.
first
vrátí Document
objekt, na který můžete volat get
k načtení hodnoty požadovaného pole.
Ale ve skutečnosti, protože chcete jen jeden záznam a jedno pole, můžete projekci odstranit!:
val record = collection.find().first