durchführen Hier ist mein Code-Snippet, wenn ich nicht erwarte oder Thread, ich werde leeres Dokument erhalten. Es ist spannend, bevor man die Daten von mongodb bekommt. Ich möchte diesen Prozess synchron in Scala ausführen, ohne Await und Thread-Ansatz zu verwenden.Ich möchte Suche auf mongodb mit scala Treiber
1
A
Antwort
0
Verwenden Sie keine Var, um den Wert von Observable zu erhalten. Ihr Programm stoppt, bevor das Future abgeschlossen ist und die veränderbare Variable hat keinen Wert von Mongo. Verändere die beobachtbare Future
val r = collectionName.find(query).projection(projection).toFuture
Wenn Sie diesen Wert wollen, bevor Ihr Programm Ihren Thread beendet mit Await.result (r, 10 Sekunden) warten müssen. In Ihrem Fall haben Sie Ihren Code in einer Funktion, die in einem Thread ausgeführt wird und der "previousDoc = data" blockiert es nicht, so dass es einfach zurückkehrt. Ändern Sie den Rückgabetyp Zukunft [Seq [Dokument]]:
def find(query: Document, projection: Document, collectionName : MongoCollection[Document]) : Future[Seq[Document]] = {
collectionName.find(query).projection(projection).toFuture()
}
Scala Mongo Der Treiber arbeitet in einem asynchronen Art und Weise unter Verwendung von Observablen oder Futures. Also versuche auf diese Weise zu arbeiten.
Verwandte Themen
- 1. Druckabfrageergebnisse von MongoDB in Scala mit Mongo-scala-Treiber
- 2. MongoDB scala Treiber benutzerdefinierte Umwandlung in JSON
- 3. Scala Pojos für Mongodb
- 4. Wie man synchrone Abfragen mit dem MongoDb Scala Treiber macht
- 5. MongoDB Scala-Treiber mit bestimmten Feldern aus eingebetteten Dokumenten
- 6. MongoDB Java - Abfrage auf mongodb Java-Treiber
- 7. Wie installiere ich php7 mongodb Treiber auf xampp auf ubuntu
- 8. Kartenprojektionsergebnis mit mongodb C# -Treiber
- 9. MongoDB-Aggregationscursor mit NodeJS-Treiber
- 10. MongoDB facettierte Suche
- 11. Ist der Scala MongoDB-Treiber als Abhängigkeit verfügbar?
- 12. Ich möchte MongoDB mit EjabbarD verwenden
- 13. Aggregation mit MongoDB Java-Treiber
- 14. find_one MongoDB Ruby-Treiber
- 15. ScalaJS und MongoDB Treiber: Bezug auf nicht existierende Klasse
- 16. Java-Treiber MongoDB updateone
- 17. MongoDB: Welcher C-Treiber?
- 18. Mongodb Treiber nicht geladen auf PHP
- 19. MongoDB Java Treiber-Array
- 20. findOne NodeJS MongoDB-Treiber
- 21. Mongodb-Gruppenaggregation mit ProjectionDefinition mit C# -Treiber
- 22. MongoDB Java-Treiber: autoConnectRetry
- 23. Mongodb php Suche mit _id gibt Fehler
- 24. MongoDB Regex Suche mit Array
- 25. MongoDB-Treiber PHP Interaktion mit Mongo-Treiber für PHP
- 26. MongoDB-Update mit Java 3-Treiber
- 27. MongoDB-Treiber arbeitet nicht mit Apache auf MAMP (Windows)
- 28. C# MongoDB Treiber Probleme (NORM)
- 29. mongodb mit scala maven project
- 30. MongoDB C# Treiber und Threadsicherheit
Welchen Mongo-Client verwenden Sie? – Abhi
Sie könnten 'toFuture' auf dem' Observable' aufrufen, das Sie von der Abfrage erhalten, und dann die Musterübereinstimmung für den Wert ermitteln. – sebszyller
Sie können einen Blick auf http://reactivemongo.org/releases/0.11/documentation/tutorial/find-documents.html werfen – cchantep