Как написать MongoDBObject и класс case для группы по

Я новичок в монго, скале и салате

У меня есть коллекция json как

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

Я определил класс случая, как показано ниже

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

использовал салатдао, как показано ниже

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

и способ получить таких сотрудников

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

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

    return listOfEmployees
  }

получить результат как это ...

{[{"firstName": "John", "lastName": "Doe", Department = "IT", Skills = "java"}, {"firstName": "Peter", "lastName": "Jones", Department = "ИТ" навыки = "java"}]}

пока все хорошо, ... Теперь я хочу ГРУППИРОВАТЬ ПО ВСЕМ ОТДЕЛЕНИЯМ и хочу получить такой результат

  {"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"}
 ]}
 }

поэтому, пожалуйста, подскажите мне, как мне написать MongoDBObject, чтобы получить этот результат, а также предложите мне соответствующий класс case для хранения этой коллекции.


person Sanjay Rabari    schedule 20.02.2016    source источник


Ответы (1)


Не могли бы вы скомпилировать свой ответ с этой информацией о себе? ).

https://docs.mongodb.org/v3.0/reference/operator/aggregation/

https://docs.mongodb.org/v3.0/reference/operator/aggregation/match/

https://docs.mongodb.org/v3.0/reference/operator/aggregation/group/

Пример агрегирования Scala Play Salat

Спасибо ).

person Yury Sukhoverkhov    schedule 24.02.2016