MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

मोंगोडब स्कैला ड्राइवर - एक दस्तावेज़ को पुनः प्राप्त करने में असमर्थ

ठीक है, मैं खुद को दोष देता हूं (और ड्राइवर के रहस्यवादी दस्तावेज)

यह ड्राइवर एसिंक्रोनस है, इसलिए हमें बस इसके पूरा होने की प्रतीक्षा करनी है...तो इसका उपयोग करने के लिए (मिला यहां ) जो वास्तव में ड्राइवर के बिना दस्तावेज़ीकरण में उपयोग किया जाता है

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. MongoDB में डेटा सम्मिलित करना - कोई त्रुटि नहीं, कोई सम्मिलित नहीं

  2. मोंगोडब सी # थोक अद्यतन/उपसंग्रह पर बदलें

  3. mongoDB:एम्बेडेड मान द्वारा खोजें

  4. Mongoose में कुछ अपडेट के लिए टाइमस्टैम्प मिडलवेयर छोड़ें

  5. मोंगोडब में नेस्टेड दस्तावेज़ में घटनाओं की गणना कैसे करें?