1

I am new to mongo, scala and salat

I have json collection as

{[
    {"firstName":"John", "lastName":"Doe", department="IT", skills="java"},
    {"firstName":"Anna", "lastName":"Smith", department="accounts, skills="tally"},
    {"firstName":"Peter", "lastName":"Jones", department="It" skills="java" }
]}

I defined case class as below

case class Employee(firstName:String,lastName:String,department:String,skills:String)

used salatdao as below

object EmployeeDao extends SalatDAO[Employees, ObjectId](collection =employee_collection)

and method to get employees like this

  def getEmployees(IT : String):List[Employees]={

    val listOfEmployees:List[Employees] = OrderDAO3.find(MongoDBObject({"department"->IT})).toList

    return listOfEmployees
  }

get result as this...

{[ {"firstName":"John", "lastName":"Doe", department="IT", skills="java"}, {"firstName":"Peter", "lastName":"Jones", department="IT" skills="java" } ]}

so far so good,... Now I want to GROUP BY ALL DEPARTMENTS and want result like this

  {"IT":[
    {"firstName":"John", "lastName":"Doe"},
    {"firstName":"Anna", "lastName":"Smith"},
    {"firstName":"Peter", "lastName":"Jones"}
  ]
  {"accounts":[
    {"firstName":"Johnac", "lastName":"Doeac"},
    {"firstName":"Annaac", "lastName":"Smithac"},
    {"firstName":"Peterac", "lastName":"Jonesac"}
 ]}
 }

so please suggust me How would I write MongoDBObject to get this result and also suggest me the respective case class to hold that collection.

Sanjay Rabari
  • 2,091
  • 1
  • 17
  • 32

1 Answers1