MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

MongoDB Scala - tài liệu truy vấn cho một giá trị trường cụ thể

Bạn có thể sửa đổi truy vấn của mình theo cách này:

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
}

Tôi nghĩ rằng bạn đã thiếu com.mongodb.client.model.Projections nhập để sử dụng các trường fields , includeexcludeId

Tôi đã sử dụng first thay vì limit(1) để giúp trích xuất kết quả dễ dàng hơn.

first trả về một Document đối tượng mà bạn có thể gọi get để truy xuất giá trị của trường được yêu cầu.

Nhưng trên thực tế, vì bạn chỉ muốn một bản ghi và một trường, nên bạn có thể xóa phép chiếu !:

val record = collection.find().first


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Trả lại mảng tài liệu phụ thông qua Meteor / Mongo

  2. Hỗ trợ không gian địa lý trong MongoDB

  3. Hiệp hội Mongoid Tạo bản ghi (không mong muốn)

  4. Khắc phục sự cố không tìm thấy mongo và php_mongo.dll không phải là lỗi ứng dụng win32

  5. Lỗi khi cài đặt trình điều khiển mongo cho PHP trên amazon linux