クエリは次のように変更できます:
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)
の代わりに 結果を簡単に抽出できるようにします。
最初コード>
Document
を返します get
を呼び出すことができるオブジェクト 要求されたフィールドの値を取得します。
しかし実際には、1つのレコードと1つのフィールドだけが必要なので、投影を削除できます!:
val record = collection.find().first