MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDB Scala - dokument zapytania o określoną wartość pola

Możesz zmodyfikować zapytanie w ten sposób:

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
}

Myślę, że brakowało Ci com.mongodb.client.model.Projections importuje w celu użycia fields , include i excludeId

Użyłem first zamiast limit(1) aby ułatwić wyodrębnienie wyniku.

first zwraca Document obiekt, na którym możesz wywołać get aby pobrać wartość żądanego pola.

Ale w rzeczywistości, ponieważ potrzebujesz tylko jednego rekordu i jednego pola, możesz usunąć projekcję!:

val record = collection.find().first


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Używanie operatora pozycyjnego z dwupoziomowymi hierarchiami w Mongo

  2. MongoDB i Mongoose:zagnieżdżona tablica identyfikatorów referencji dokumentów

  3. Co należy wiedzieć, kiedy rozpocząć pracę z MongoDB w środowisku produkcyjnym — dziesięć wskazówek

  4. Node.JS czeka na ustawienie zmiennej

  5. Dane sprężyny Dopasuj i filtruj zagnieżdżoną tablicę