私は対応する文書の配列を持つ各グループのフィールドの最大値を取得するにはどうすればよいですか?
{
"_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"
}
]
}
のようなコレクションを持っている私は、最も高い給料を得ることができ、各部門で
{"Name": "Sam", "Salary": 90000, "Department": "IT"}
{"Name": "Henry", "Salary": 80000, "Department": "Sales"}
を給与が最も高い結果を持っていると思います。しかし、私は対応する従業員の名前を得ることができませんでした。
db.HR.aggregate([
{ "$unwind": "$records" },
{ "$group":
{
"_id": "$records.Department",
"max_salary": { "$max": "$records.Salary" }
}
}
])
誰か助けてもらえますか?
偉大な質問、あなたがしようとしたエラーを持っているものを追加することはできますか? – inspired
私は自己結合でSQLでそれを解決できました。しかし、私はモンゴで道を見つけることができません – dapangmao