sql >> Database teknologi >  >> NoSQL >> MongoDB

Alpakka MongoDB - angiv type i MongoSource

Dette er ikke offentliggjort endnu, men i Alpakkas mastergren, MongoSource.apply tager en type parameter:

object MongoSource {
  def apply[T](query: Observable[T]): Source[T, NotUsed] =
    Source.fromPublisher(ObservableToPublisher(query))
}

Derfor vil du med den kommende 0.18-udgivelse af Alpakka være i stand til at gøre følgende:

val source: Source[TodoMongo, NotUsed] = MongoSource[TodoMongo](todoCollection.find())

Bemærk at source her antager, at todoCollection.find() returnerer en Observable[TodoMongo]; juster typerne efter behov.

I mellemtiden kan du blot tilføje ovenstående kode manuelt. For eksempel:

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

Bemærk, at MyMongoSource er defineret til at ligge i akka.stream.alpakka.mongodb.scaladsl pakke (som MongoSource ), fordi ObservableToPublisher er en pakke-privat klasse. Du ville bruge MyMongoSource på samme måde som du ville bruge MongoSource :

val source: Source[TodoMongo, NotUsed] = MyMongoSource[TodoMongo](todoCollection.find()) 



  1. Får forskel på sekunder fra to datoer i JavaScript

  2. MongoDB remove()

  3. Aggregation med flere kriterier og sum match baseret på tæller nøglen

  4. Pymongo-aggregation - bestået python-liste til aggregering