यह अभी तक प्रकाशित नहीं हुआ है, लेकिन अल्पाका की मास्टर शाखा में, MongoSource.apply
एक प्रकार का पैरामीटर लेता है:
object MongoSource {
def apply[T](query: Observable[T]): Source[T, NotUsed] =
Source.fromPublisher(ObservableToPublisher(query))
}
इसलिए, अल्पाक्का की आगामी 0.18 रिलीज़ के साथ, आप निम्न कार्य करने में सक्षम होंगे:
val source: Source[TodoMongo, NotUsed] = MongoSource[TodoMongo](todoCollection.find())
ध्यान दें कि source
यहाँ मान लिया गया है कि todoCollection.find()
एक Observable[TodoMongo]
returns देता है; आवश्यकतानुसार प्रकार समायोजित करें।
इस बीच, आप बस उपरोक्त कोड को मैन्युअल रूप से जोड़ सकते हैं। उदाहरण के लिए:
package akka.stream.alpakka.mongodb.scaladsl
import akka.NotUsed
import akka.stream.alpakka.mongodb.ObservableToPublisher
import akka.stream.scaladsl.Source
import org.mongodb.scala.Observable
object MyMongoSource {
def apply[T](query: Observable[T]): Source[T, NotUsed] =
Source.fromPublisher(ObservableToPublisher(query))
}
ध्यान दें कि MyMongoSource
akka.stream.alpakka.mongodb.scaladsl
में रहने के लिए परिभाषित किया गया है पैकेज (जैसे MongoSource
), क्योंकि ObservableToPublisher
एक पैकेज-निजी वर्ग है। आप MyMongoSource
. का उपयोग करेंगे उसी तरह जैसे आप MongoSource
. का उपयोग करेंगे :
val source: Source[TodoMongo, NotUsed] = MyMongoSource[TodoMongo](todoCollection.find())