MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

mongodb scala драйвер - не може да извлече документ

Добре, обвинявам себе си (и мистичната документация на драйвера)

Този драйвер е асинхронен, така че просто трябва да изчакаме да завърши... И така, за да обобщим използването на това (намерено тук ), който наистина се използва в документацията, без да е в самия драйвер

implicit class DocumentObservable[C](val observable: Observable[Document]) extends ImplicitObservable[Document] {
   override val converter: (Document) => String = (doc) => doc.toJson
}

implicit class GenericObservable[C](val observable: Observable[C]) extends ImplicitObservable[C] {
   override val converter: (C) => String = (doc) => doc.toString
}

trait ImplicitObservable[C] {
  val observable: Observable[C]
  val converter: (C) => String

  def results(): Seq[C] = Await.result(observable.toFuture(), Duration(10, TimeUnit.SECONDS))
  def headResult() = Await.result(observable.head(), Duration(10, TimeUnit.SECONDS))
  def printResults(initial: String = ""): Unit = {
    if (initial.length > 0) print(initial)
    results().foreach(res => println(converter(res)))
  }
  def printHeadResult(initial: String = ""): Unit = println(s"${initial}${converter(headResult())}")
}

И промяна на извличането по този начин:

def retrieveDocument(id: Int, collectionName: String, databaseName: String, url: String): Option[Document] = {
var res: Option[Document] = None
getMongoCollectionImmutable(collectionName, databaseName, url)
  .find(Filters.equal("_id", id))
  .limit(1).results().foreach({ x => res = Some(x) })
res

}

Поправя проблема ми.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как Spring Data знае кой магазин да подкрепи хранилище, ако се използват множество модули?

  2. mongoDB:C# драйвер V2 Как да актуализирате елемент във вложена колекция

  3. MongoDB:Запитване на множество колекции с две заявки?

  4. Като търсене в MongoDB с библиотека Monk

  5. Как да конвертирате bson в json ефективно с mongo-go-driver?