Collects all the documents into a collection of type M[T]
.
Collects all the documents into a collection of type M[T]
.
the maximum number of documents to be retrieved (-1 for unlimited).
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]]()) }
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.
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) })
the initial value
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.
The binary operator to be applied when the next response is successfully read.
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.
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.
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) })
the initial value
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.
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]]
.
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.
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.
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) })
the initial value
the maximum number of documents to be retrieved (-1 for unlimited).
The binary operator to be applied when the next document is successfully read.
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.
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.
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) })
the initial value
the maximum number of documents to be retrieved (-1 for unlimited).
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]]
.
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.
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 }
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 }
EXPERIMENTAL: The cursor state, if already resolved.
EXPERIMENTAL: The cursor state, if already resolved.
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.
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) })
the initial value
the maximum number of documents to be retrieved (-1 for unlimited).
The binary operator to be applied when the next document is successfully read.
Cursor over results from MongoDB.
the type parsed from each result document