sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB Scala - forespørgselsdokument for en specifik feltværdi

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


  1. MongoDb:Forskel mellem $push/$addtoset

  2. Er det muligt at ændre standard TimeZone i MongoDB ved hjælp af Rails 3?

  3. Spring Data Redis Expire Key

  4. Mongoose &Express:Hvordan man korrekt fjerner, opretter og gemmer data, der er reference