Mam kolekcję jakJak uzyskać maksymalną wartość pola dla każdej grupy z tablicą odpowiednich dokumentów?
{
"_id" : ObjectId("5738cb363bb56eb8f76c2ba8"),
"records" : [
{
"Name" : "Joe",
"Salary" : 70000,
"Department" : "IT"
}
]
},
{
"_id" : ObjectId("5738cb363bb56eb8f76c2ba9"),
"records" : [
{
"Name" : "Henry",
"Salary" : 80000,
"Department" : "Sales"
},
{
"Name" : "Jake",
"Salary" : 40000,
"Department" : "Sales"
}
]
},
{
"_id" : ObjectId("5738cb363bb56eb8f76c2baa"),
"records" : [
{
"Name" : "Sam",
"Salary" : 90000,
"Department" : "IT"
},
{
"Name" : "Tom",
"Salary" : 50000,
"Department" : "Sales"
}
]
}
Chcę mieć wyniki z najwyższego wynagrodzenia przez każdego działu
{"Name": "Sam", "Salary": 90000, "Department": "IT"}
{"Name": "Henry", "Salary": 80000, "Department": "Sales"}
mogę dostać najwyższe wynagrodzenie. Ale nie mogłem uzyskać odpowiednich nazwisk pracowników.
db.HR.aggregate([
{ "$unwind": "$records" },
{ "$group":
{
"_id": "$records.Department",
"max_salary": { "$max": "$records.Salary" }
}
}
])
Czy ktoś może mi pomóc?
wielkie pytanie, można dodać co próbowali i masz błąd? – inspired
Mogłem rozwiązać to w SQL z samołączeniem. Ale nie mogę znaleźć sposobu na Mongo – dapangmao