AkkaStreamCursor

reactivemongo.akkastream.AkkaStreamCursor
See theAkkaStreamCursor companion object
sealed trait AkkaStreamCursor[T] extends Cursor[T]

Attributes

Companion:
object
Graph
Supertypes
trait Cursor[T]
class Object
trait Matchable
class Any
Known subtypes

Members list

Concise view

Value members

Abstract methods

def bulkSource(maxDocs: Int, err: () => Option[Iterator[T]])(implicit m: Materializer): Source[Iterator[T], Future[State]]

Returns a source of document bulks (see reactivemongo.api.QueryOpts.batchSize). It materializes a Future of State (for now with no detail, for future extension).

Returns a source of document bulks (see reactivemongo.api.QueryOpts.batchSize). It materializes a Future of State (for now with no detail, for future extension).

Attributes

err

The binary operator to be applied when failing to get the next response. Exception or Fail raised within the suc function cannot be recovered by this error handler.

m

the stream materializer

maxDocs

the maximum number of documents to be retrieved

def documentSource(maxDocs: Int, err: () => Option[T])(implicit m: Materializer): Source[T, Future[State]]

Returns a source of documents. It materializes a Future of State (for now with no detail, for future extension).

Returns a source of documents. It materializes a Future of State (for now with no detail, for future extension).

Attributes

err

The binary operator to be applied when failing to get the next response. Exception or Fail raised within the suc function cannot be recovered by this error handler.

m

the stream materializer

maxDocs

the maximum number of documents to be retrieved

Concrete methods

final def bulkPublisher(fanout: Boolean, maxDocs: Int, err: () => Option[Iterator[T]])(implicit m: Materializer): Publisher[Iterator[T]]

Returns a Reactive Streams publisher of bulks from this cursor.

Returns a Reactive Streams publisher of bulks from this cursor.

Attributes

err

The binary operator to be applied when failing to get the next response. Exception or Fail raised within the suc function cannot be recovered by this error handler.

fanout

see [[http://doc.akka.io/api/akka/2.4.7/index.html#akka.stream.scaladsl.Sink$@asPublisherT:akka.stream.scaladsl.Sink[T,org.reactivestreams.Publisher[T]] Sink.asPublisher]] (default: false)

m

the stream materializer

maxDocs

the maximum number of documents to be retrieved

final def documentPublisher(fanout: Boolean, maxDocs: Int, err: () => Option[T])(implicit m: Materializer): Publisher[T]

Returns a Reactive Streams publisher of documents from this cursor.

Returns a Reactive Streams publisher of documents from this cursor.

Attributes

err

The binary operator to be applied when failing to get the next response. Exception or Fail raised within the suc function cannot be recovered by this error handler.

fanout

see [[http://doc.akka.io/api/akka/2.4.7/index.html#akka.stream.scaladsl.Sink$@asPublisherT:akka.stream.scaladsl.Sink[T,org.reactivestreams.Publisher[T]] Sink.asPublisher]] (default: false)

m

the stream materializer

maxDocs

the maximum number of documents to be retrieved

Inherited methods

def collect[M[_]](maxDocs: Int, err: () => M[T])(implicit cbf: Factory[T, M[T]], ec: ExecutionContext): Future[M[T]]

Collects all the documents into a collection of type M[T].

Collects all the documents into a collection of type M[T].

Attributes

err

The binary operator to be applied when failing to get the next response. Exception or Fail raised within the suc function cannot be recovered by this error handler. (default: Cursor.FailOnError)

import scala.concurrent.ExecutionContext
import reactivemongo.api.Cursor
import reactivemongo.api.bson.BSONDocument
import reactivemongo.api.bson.collection.BSONCollection
def foo(collection: BSONCollection, query: BSONDocument)(
 implicit ec: ExecutionContext) = {
 val cursor = collection.find(query).cursor[BSONDocument]()
 // return the 3 first documents in a Vector[BSONDocument].
 cursor.collect[Vector](3, Cursor.FailOnError[Vector[BSONDocument]]())
}
maxDocs

the maximum number of documents to be retrieved (-1 for unlimited).

Inherited from:
CursorCompatAPI (hidden)
def fold[A](z: => A, maxDocs: Int)(suc: (A, T) => A)(implicit ec: ExecutionContext): Future[A]

Applies a binary operator to a start value and all elements retrieved by this cursor, going first to last.

Applies a binary operator to a start value and all elements retrieved by this cursor, going first to last.

Attributes

A

the result type of the binary operator

import scala.concurrent.ExecutionContext
import reactivemongo.api.Cursor
case class Person(name: String, age: Int)
def foo(cursor: Cursor[Person])(implicit ec: ExecutionContext) =
 cursor.foldWhile(Nil: Seq[Person])((s, p) => Cursor.Cont(s :+ p),
   { (l, e) => println("last valid value: " + l); Cursor.Fail(e) })
err

The binary operator to be applied when failing to get the next response. Exception or Fail raised within the suc function cannot be recovered by this error handler.

maxDocs

the maximum number of documents to be retrieved (-1 for unlimited).

suc

The binary operator to be applied when the next document is successfully read.

z

the initial value

Inherited from:
Cursor
def foldBulks[A](z: => A, maxDocs: Int)(suc: (A, Iterator[T]) => State[A], err: () => A)(implicit ec: ExecutionContext): Future[A]

Applies a binary operator to a start value and all bulks of documents retrieved by this cursor, going first to last.

Applies a binary operator to a start value and all bulks of documents retrieved by this cursor, going first to last.

Attributes

A

the result type of the binary operator

import reactivemongo.api.Cursor
import scala.concurrent.ExecutionContext
case class Person(name: String, age: Int)
def foo(cursor: Cursor[Person])(implicit ec: ExecutionContext) =
 cursor.foldBulks(Nil: Seq[Person])(
   (s, bulk: Iterator[Person]) => Cursor.Cont(s ++ bulk),
   { (l, e) => println("last valid value: " + l); Cursor.Fail(e) })
err

The binary operator to be applied when failing to get the next response. Exception or Fail raised within the suc function cannot be recovered by this error handler.

maxDocs

the maximum number of documents to be retrieved (-1 for unlimited). The actual document count can exceed this, when this maximum devided by the batch size given a non-zero remainder.

suc

The binary operator to be applied when the next response is successfully read.

z

the initial value

Inherited from:
Cursor
def foldBulksM[A](z: => A, maxDocs: Int)(suc: (A, Iterator[T]) => Future[State[A]], err: () => A)(implicit ec: ExecutionContext): Future[A]

Applies a binary operator to a start value and all bulks of documents retrieved by this cursor, going first to last.

Applies a binary operator to a start value and all bulks of documents retrieved by this cursor, going first to last.

Attributes

A

the result type of the binary operator

import scala.concurrent.{ ExecutionContext, Future }
import reactivemongo.api.Cursor
case class Person(name: String, age: Int)
def foo(cursor: Cursor[Person])(implicit ec: ExecutionContext) =
 cursor.foldBulksM(Nil: Seq[Person])(
   { (s, bulk: Iterator[Person]) =>
    Future.successful(Cursor.Cont(s ++ bulk))
  },
   { (l, e) =>
     println("last valid value: " + l)
     Cursor.Fail[Seq[Person]](e)
   })
err

The binary operator to be applied when failing to get the next response. Exception or Fail raised within the suc function cannot be recovered by this error handler.

maxDocs

the maximum number of documents to be retrieved (-1 for unlimited). The actual document count can exceed this, when this maximum devided by the batch size given a non-zero remainder.

suc

The binary operator to be applied when the next response is successfully read. This must be safe, and any error must be returned as Future.failed[State[A]].

z

the initial value

Inherited from:
Cursor
def foldWhile[A](z: => A, maxDocs: Int)(suc: (A, T) => State[A], err: () => A)(implicit ec: ExecutionContext): Future[A]

Applies a binary operator to a start value and all elements retrieved by this cursor, going first to last.

Applies a binary operator to a start value and all elements retrieved by this cursor, going first to last.

Attributes

A

the result type of the binary operator

import reactivemongo.api.Cursor
import scala.concurrent.ExecutionContext
case class Person(name: String, age: Int)
def foo(cursor: Cursor[Person])(implicit ec: ExecutionContext) =
 cursor.foldWhile(Nil: Seq[Person])((s, p) => Cursor.Cont(s :+ p),
   { (l, e) => println("last valid value: " + l); Cursor.Fail(e) })
err

The binary operator to be applied when failing to get the next response. Exception or Fail raised within the suc function cannot be recovered by this error handler.

maxDocs

the maximum number of documents to be retrieved (-1 for unlimited).

suc

The binary operator to be applied when the next document is successfully read.

z

the initial value

Inherited from:
Cursor
def foldWhileM[A](z: => A, maxDocs: Int)(suc: (A, T) => Future[State[A]], err: () => A)(implicit ec: ExecutionContext): Future[A]

Applies a binary operator to a start value and all elements retrieved by this cursor, going first to last.

Applies a binary operator to a start value and all elements retrieved by this cursor, going first to last.

Attributes

A

the result type of the binary operator

import scala.concurrent.{ ExecutionContext, Future }
import reactivemongo.api.Cursor
case class Person(name: String, age: Int)
def foo(cursor: Cursor[Person])(implicit ec: ExecutionContext) =
 cursor.foldWhileM(Nil: Seq[Person])(
   (s, p) => Future.successful(Cursor.Cont(s :+ p)),
   { (l, e) =>
     println("last valid value: " + l)
     Cursor.Fail[Seq[Person]](e)
   })
err

The binary operator to be applied when failing to get the next response. Exception or Fail raised within the suc function cannot be recovered by this error handler.

maxDocs

the maximum number of documents to be retrieved (-1 for unlimited).

suc

The binary operator to be applied when the next document is successfully read. This must be safe, and any error must be returned as Future.failed[State[A]].

z

the initial value

Inherited from:
Cursor
def head(implicit ec: ExecutionContext): Future[T]

Returns the first document matching the query, or fails with Cursor.NoSuchResultException if none.

Returns the first document matching the query, or fails with Cursor.NoSuchResultException if none.

import scala.concurrent.{ ExecutionContext, Future }

import reactivemongo.api.bson.BSONDocument
import reactivemongo.api.bson.collection.BSONCollection

def first(query: BSONDocument)(collection: BSONCollection)(
 implicit ec: ExecutionContext): Future[BSONDocument] = {
 val cursor = collection.find(query).cursor[BSONDocument]()
 // return option of the first element.
 cursor.head
}

Attributes

Inherited from:
Cursor

Returns the first document matching the query, if any.

Returns the first document matching the query, if any.

import scala.concurrent.{ ExecutionContext, Future }

import reactivemongo.api.bson.BSONDocument

import reactivemongo.api.bson.collection.BSONCollection

def maybeFirst(query: BSONDocument)(collection: BSONCollection)(
 implicit ec: ExecutionContext): Future[Option[BSONDocument]] = {
 val cursor = collection.find(query).cursor[BSONDocument]()
 // return option of the first element.
 cursor.headOption
}

Attributes

Inherited from:
Cursor
def peek[M[_]](maxDocs: Int)(implicit cbf: Factory[T, M[T]], ec: ExecutionContext): Future[Result[M[T]]]

'''EXPERIMENTAL:''' The cursor state, if already resolved.

'''EXPERIMENTAL:''' The cursor state, if already resolved.

Attributes

Inherited from:
CursorCompatAPI (hidden)