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] = ..., 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: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

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

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

    Definition Classes
    Any
  6. final def asInstanceOf[T0]: T0

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

    Definition Classes
    Dao
  8. 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
  9. def clone(): AnyRef

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

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

    Definition Classes
    JsonDao → Dao
  12. def defaultWriteConcern: GetLastError

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

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

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

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

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

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

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  19. 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
  20. def findAll(selector: JsObject = Json.obj(), sort: JsObject = Json.obj("_id" -> 1))(implicit ec: ExecutionContext): Future[List[Model]]

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

    Definition Classes
    JsonDao → Dao
  22. 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
  23. def findById(id: ID)(implicit ec: ExecutionContext): Future[Option[Model]]

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

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

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

    Definition Classes
    JsonDao → Dao
  27. 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
  28. def foreach(selector: JsObject = Json.obj(), sort: JsObject = Json.obj("_id" -> 1))(f: (Model) ⇒ Unit)(implicit ec: ExecutionContext): Future[Unit]

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

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

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

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

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

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

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

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

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

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

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

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

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

    Definition Classes
    AnyRef
  42. def toString(): String

    Definition Classes
    AnyRef → Any
  43. 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
  44. def updateById[U](id: ID, update: U, writeConcern: GetLastError = defaultWriteConcern)(implicit arg0: Writes[U], ec: ExecutionContext): Future[LastError]

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  47. 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