Skip to content

Getting Started

A library for easy usage of the mongo-scala-driver.

Dependency Setup

Support Scala 2.12 and Scala 2.13.

scala
libraryDependencies += "dev.mongocamp" %% "mongodb-driver" % "3.0.1.snapshot"
scala
def ivyDeps = Agg(
  ivy"dev.mongocamp:::mongodb-driver:3.0.1.snapshot"
)
xml
<dependency>
    <groupId>dev.mongocamp</groupId>
    <artifactId>mongodb-driver_2.13</artifactId>
    <version>3.0.1.snapshot</version>
</dependency>
groovy
dependencies {
    implementation "dev.mongocamp:mongodb-driver_2.13:3.0.1.snapshot"
}

Features:

Example: Model

Create custom model classes.

scala
case class Student(_id: Long, name: String, scores: List[Score], image: Option[ObjectId])

case class Score(score: Double, `type`: String)

case class Grade(_id: ObjectId, studentId: Long, classId: Long, scores: List[Score])

Example: Database

scala
package dev.mongocamp.driver.mongodb.test

import dev.mongocamp.driver.mongodb.database.DatabaseProvider
import dev.mongocamp.driver.mongodb.json._
import dev.mongocamp.driver.mongodb.model._
import dev.mongocamp.driver.mongodb.server.LocalServer
import dev.mongocamp.driver.mongodb.{ GridFSDAO, MongoDAO }
import io.circe.generic.auto._


object UniversityDatabase {
  // create local test server (mongodb-java-server)
  var LocalTestServer: LocalServer = _

  // create codecs for custom classes

  // create provider
  val provider: DatabaseProvider = DatabaseProvider.fromPath(configPath = "unit.test.mongo.local")

  // setup DAO objects with mongodb collection names

  object StudentDAO extends MongoDAO[Student](provider, "universityStudents")

  object GradeDAO extends MongoDAO[Grade](TestDatabase.provider, "universityGrades")

  object SudentImagesDAO extends GridFSDAO(provider, "universityImages")

}

Licence

Apache 2

Released under the Apache License 2.0.