Как написать 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)
используется Salatdao, как показано ниже
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": "Джон", "lastName":"Доу", отдел ="IT", навыки ="java"}, {"firstName":"Питер", "lastName":"Джонс", отдел = "IT" навыки = "Ява" } ]}
пока все хорошо,... Теперь я хочу группировать по всем отделам и хочу, чтобы результат, как это
{"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 для хранения этой коллекции.
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
Спасибо).