reactivemongo.extensions.json.dao

JsonDao

abstract class JsonDao[Model, ID] extends Dao[JSONCollection, JsObject, Model, ID, Writes]

A DAO implementation that operates on JSONCollection using JsObject.

To create a DAO for a concrete model extend this class.

Below is a sample model.

import reactivemongo.bson.BSONObjectID
import play.api.libs.json.Json
import play.modules.reactivemongo.json.BSONFormats._

case class Person(
  _id: BSONObjectID = BSONObjectID.generate,
  name: String,
  surname: String,
  age: Int)

object Person {
  implicit val personFormat = Json.format[Person]
}

To define a JsonDao for the Person model you just need to extend JsonDao.

import reactivemongo.api.{ MongoDriver, DB }
import reactivemongo.bson.BSONObjectID
import play.modules.reactivemongo.json.BSONFormats._
import reactivemongo.extensions.json.dao.JsonDao
import scala.concurrent.ExecutionContext.Implicits.global


object MongoContext {
 val driver = new MongoDriver
 val connection = driver.connection(List("localhost"))
 def db(): DB = connection("reactivemongo-extensions")
}

object PersonDao extends JsonDao[Person, BSONObjectID](MongoContext.db, "persons")
Model

Type of the model that this DAO uses.

ID

Type of the ID field of the model.

Linear Supertypes
Dao[JSONCollection, JsObject, Model, ID, Writes], AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. JsonDao
  2. Dao
  3. AnyRef
  4. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new JsonDao(db: ⇒ DB, collectionName: String)(implicit arg0: Format[Model], arg1: Writes[ID], lifeCycle: LifeCycle[Model, ID] = new ReflexiveLifeCycle[Model, ID], ec: ExecutionContext)

    db

    A parameterless function returning a reactivemongo.api.DB instance.

    collectionName

    Name of the collection this DAO is going to operate on.

    lifeCycle

    reactivemongo.extensions.dao.LifeCycle for the Model type.

Value Members

  1. final def !=(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  5. def autoIndexes: Traversable[Index]

    Definition Classes
    Dao
  6. def bulkInsert(documents: TraversableOnce[Model], writeConcern: GetLastError = defaultWriteConcern, bulkSize: Int = bulk.MaxDocs, bulkByteSize: Int = bulk.MaxBulkSize)(implicit ec: ExecutionContext): Future[Int]

    Definition Classes
    JsonDao → Dao
  7. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  8. def collection: JSONCollection

    Definition Classes
    Dao
  9. def count(selector: JsObject = Json.obj())(implicit ec: ExecutionContext): Future[Int]

    Definition Classes
    JsonDao → Dao
  10. def defaultWriteConcern: GetLastError

    Definition Classes
    Dao
  11. def drop()(implicit ec: ExecutionContext): Future[Boolean]

    Definition Classes
    JsonDao → Dao
  12. def dropSync(timeout: Duration = 10 seconds)(implicit ec: ExecutionContext): Boolean

    Definition Classes
    JsonDao → Dao
  13. def ensureIndexes()(implicit ec: ExecutionContext): Future[Traversable[Boolean]]

    Definition Classes
    JsonDao → Dao
  14. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  15. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  16. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  17. def find(selector: JsObject = Json.obj(), sort: JsObject = Json.obj("_id" -> 1), page: Int, pageSize: Int)(implicit ec: ExecutionContext): Future[List[Model]]

    Definition Classes
    JsonDao → Dao
  18. def findAll(selector: JsObject = Json.obj(), sort: JsObject = Json.obj("_id" -> 1))(implicit ec: ExecutionContext): Future[List[Model]]

    Definition Classes
    JsonDao → Dao
  19. def findAndRemove(query: JsObject, sort: JsObject = Json.obj())(implicit ec: ExecutionContext): Future[Option[Model]]

    Definition Classes
    JsonDao → Dao
  20. def findAndUpdate(query: JsObject, update: JsObject, sort: JsObject = Json.obj(), fetchNewObject: Boolean = false, upsert: Boolean = false)(implicit ec: ExecutionContext): Future[Option[Model]]

    Definition Classes
    JsonDao → Dao
  21. def findById(id: ID)(implicit ec: ExecutionContext): Future[Option[Model]]

    Definition Classes
    JsonDao → Dao
  22. def findByIds(ids: ID*)(implicit ec: ExecutionContext): Future[List[Model]]

    Definition Classes
    JsonDao → Dao
  23. def findOne(selector: JsObject = Json.obj())(implicit ec: ExecutionContext): Future[Option[Model]]

    Definition Classes
    JsonDao → Dao
  24. def findRandom(selector: JsObject = Json.obj())(implicit ec: ExecutionContext): Future[Option[Model]]

    Definition Classes
    JsonDao → Dao
  25. def fold[A](selector: JsObject = Json.obj(), sort: JsObject = Json.obj("_id" -> 1), state: A)(f: (A, Model) ⇒ A)(implicit ec: ExecutionContext): Future[A]

    Definition Classes
    JsonDao → Dao
  26. def foreach(selector: JsObject = Json.obj(), sort: JsObject = Json.obj("_id" -> 1))(f: (Model) ⇒ Unit)(implicit ec: ExecutionContext): Future[Unit]

    Definition Classes
    JsonDao → Dao
  27. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  28. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  29. def insert(model: Model, writeConcern: GetLastError = defaultWriteConcern)(implicit ec: ExecutionContext): Future[LastError]

    Definition Classes
    JsonDao → Dao
  30. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  31. def listIndexes()(implicit ec: ExecutionContext): Future[List[Index]]

    Definition Classes
    JsonDao → Dao
  32. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  33. final def notify(): Unit

    Definition Classes
    AnyRef
  34. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  35. def remove(query: JsObject, writeConcern: GetLastError = defaultWriteConcern, firstMatchOnly: Boolean = false)(implicit ec: ExecutionContext): Future[LastError]

    Definition Classes
    JsonDao → Dao
  36. def removeAll(writeConcern: GetLastError = defaultWriteConcern)(implicit ec: ExecutionContext): Future[LastError]

    Definition Classes
    JsonDao → Dao
  37. def removeById(id: ID, writeConcern: GetLastError = defaultWriteConcern)(implicit ec: ExecutionContext): Future[LastError]

    Definition Classes
    JsonDao → Dao
  38. def save(model: Model, writeConcern: GetLastError = GetLastError())(implicit ec: ExecutionContext): Future[LastError]

    Definition Classes
    JsonDao → Dao
  39. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  40. def toString(): String

    Definition Classes
    AnyRef → Any
  41. def update[U](selector: JsObject, update: U, writeConcern: GetLastError = defaultWriteConcern, upsert: Boolean = false, multi: Boolean = false)(implicit arg0: Writes[U], ec: ExecutionContext): Future[LastError]

    Definition Classes
    JsonDao → Dao
  42. def updateById[U](id: ID, update: U, writeConcern: GetLastError = defaultWriteConcern)(implicit arg0: Writes[U], ec: ExecutionContext): Future[LastError]

    Definition Classes
    JsonDao → Dao
  43. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  44. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  45. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Dao[JSONCollection, JsObject, Model, ID, Writes]

Inherited from AnyRef

Inherited from Any

Ungrouped