sql >> Database >  >> NoSQL >> MongoDB

mongodb scala driver - kan een document niet ophalen

Oké, ik geef mezelf de schuld (en de mystieke documentatie van de bestuurder)

Dit stuurprogramma is asynchroon, dus we moeten gewoon wachten tot het is voltooid ... Dus om samen te vatten met dat (gevonden hier ) die echt wordt gebruikt in de documentatie zonder in de driver zelf te zijn

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())}")
}

En op die manier het ophalen wijzigen:

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

}

Het lost mijn probleem op.




  1. Wat wordt bedoeld met bestandsgrootte en datagrootte in MongoDB?

  2. Wanneer documenten in Mongo DB insluiten?

  3. phpredis op windows 7 64bit xampp

  4. Start MongoDB vanuit een Grunt-taak