sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB Scala – dotaz na dokument pro konkrétní hodnotu pole

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


  1. Jak zadat objednávku nebo řazení pomocí ovladače C# pro MongoDB?

  2. limity počtu kolekcí v databázích

  3. Jak vytvořit zákazníka i kartu v jediné akci s Stripe?

  4. Jak třídím kolekci na základě hodnot v poli