MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

MongoDB Scala - dokumen kueri untuk nilai bidang tertentu

Anda dapat mengubah kueri Anda dengan cara ini:

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
}

Saya pikir Anda melewatkan com.mongodb.client.model.Projections impor untuk menggunakan fields , include dan excludeId

Saya menggunakan first bukannya limit(1) untuk mempermudah mengekstrak hasilnya.

first mengembalikan Document objek tempat Anda dapat memanggil get untuk mengambil nilai bidang yang diminta.

Namun nyatanya, karena Anda hanya menginginkan satu rekaman dan satu bidang, Anda dapat menghapus proyeksi!:

val record = collection.find().first


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Setel tanggal default dalam dokumen Mongoose menjadi sekarang + [beberapa kenaikan]

  2. Proyek dengan Pertandingan secara agregat tidak berfungsi di mongodb

  3. Bagaimana cara menyimpan tanggal dengan benar?

  4. NodeJS dan MongoDB FindAndModify() perlu dihapus atau diperbarui

  5. Cara mengatasi error :dbpath (/data/db/) tidak ada secara permanen di MongoDB