0

我使用在insertMany之后返回 Observable[Completed] 的 mongo-scala-driver 1.0.1 。

我将许多文档放入循环中,并且在所有文档都已插入后我需要执行一些操作。

我可以使用 observable.toFuture 来获取 Seq[Future[Completed]] 然后 Future.sequence(...) 来处理未来。

但是是否可以在 Scala中转换Seq[Observable[Completed]]为?Observable[...]还是有更好的处理方法?

mongo-scala-driver 有它自己的 Observable trait org.mongodb.scala.Observable

4

1 回答 1

1

这是一个如何将 s 展平ListObservablesingle的示例Observable

List(
  Observable.interval(200 millis),
  Observable.interval(400 millis),
  Observable.interval(800 millis)
).toObservable.flatten.take(12).toBlocking.foreach(println(_))

你可以在这里找到这个和更多的例子:https ://github.com/ReactiveX/RxScala/blob/0.x/examples/src/test/scala/examples/RxScalaDemo.scala

编辑

这是应该与 mongo api 一起使用的内容,尽管我没有对其进行测试。

val observables: Seq[Observable[Int]] = ???
val result: Observable[Int] = Observable(observables).flatMap(identity)
于 2016-06-08T11:57:40.720 回答