Scala : Scala is a general purpose programming language designed to express common programming patterns in a concise, elegant, and type-safe way. More…

Play Framework : Play 2.0 is a high-productivity Scala web application framework that integrates the components and APIs you need for modern web application development.

Play is based on a lightweight, stateless, web-friendly architecture. More…

MongoDB : MongoDB is a scalable, high-performance, open source NoSQL database. More…
Here we’ll have a look to use all these three together with help of small code snippets.
Creating a Play Scala Project using new command like :

play new Play_Scala_MongoDB_Tutorial

Adding Dependecies :

Add the following dependencies in ‘Build.scala’ File in order to use MongoDB (Here we’ll be using SalatDAO).

 "com.mongodb.casbah" %% "casbah" % "2.1.5-1",
 "com.novus" %% "salat-core" % "0.0.8-20120223",
 "commons-codec" % "commons-codec" % "1.6"

Preparing Requests (GET and POST) : Here we are taking an example of a simple GET request.

You can define the requests path and the correspondent methods in “routes” file like :

GET     /callMe                    controllers.Tutorial.testMethodForPlayTutorial

Here we are defining that a GET request on this URL ” /callMe” would hit the method testMethodForPlayTutorail in Tutorial Controller.

Writing Controller : Now we are going to write Tutorial controller under “app/controllers”.

package controllers
import play.api.mvc.Controller
import play.api.mvc.Action

object Tutorial extends Controller {

  def testMethodForPlayTutorial = Action { implicit request =>
    Ok("Method Hit is here")


Now you can run your application using following command & you’ll find your output at http://localhost:9000/callMe

/Play_Scala_MongoDB_Tutorial$ play run     //running the project

Connecting to MongoDB :

You’d require mongoDB running locally. We’ll use SalatDAO framwork to store the Data in mongoDB.You’d get an idea from this example of how to interact with MongoDB.

Firstly let us create the MongoDB connection class

Connection Class

package models
import com.mongodb.casbah.MongoConnection

object MongoDBSetup {
  val mongoDB = MongoConnection()("test_database")

Saving data in MongoDB :

Model Class

package models
import com.novus.salat.dao.SalatDAO
import org.bson.types.ObjectId
import models.MongoDBSetup

case class SaveData(username: String,
  Marks: Int,
  email: String)                                 // SaveData Model

object SaveData {

  def saveTheDataInMongo {
    val dataToSave = new SaveData("Neelkanth", 87, "")


object SaveDataDAO extends SalatDAO[SaveData, ObjectId](collection = MongoDBSetup.mongoDB("saved_data"))

Now recall & modify the testMethodForPlayTutorial method.

def testMethodForPlayTutorial = Action { implicit request =>
    SaveData.saveTheDataInMongo                    //calling the method
    Ok("Stored data in database")

Now on hitting the URL http://localhost:9000/callMe would generate the GET request that will create a database test_database and stores the data in collection saved_data.

GitHub Repo for this example.


      1. Thank you very much Neelkanth your blog realy help me. I find all thing which i am searching from the morning . Thank you very much keep on posting more blog on mongo and play.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s