Saya mencoba menemukan keterampilan paling umum (dan paling tidak umum) yang disimpan di database mongo. Saya menggunakan luwak untuk mengambil hasilnya.
User
adalah dokumen root, yang masing-masing memiliki dokumen Profile
di dalamnya. Profil tersebut memiliki atribut 'skill' yang berisi array ProfileSkillEntry
yang memiliki title
(nama skill).
return User.aggregate([{
$group: {
'_id': '$profile.skills.title',
'count': {
$sum: 1
}
}
}, {
$sort: {
'count': -1
}
}, {
$limit: 5
}]);
Saya mengharapkannya untuk menggabungkan semua keterampilan Pengguna yang terdaftar bersama-sama, menemukan 5 keterampilan teratas yang muncul dan mengembalikannya. Sebaliknya tampaknya mengelompokkan per pengguna dan memberikan hasil yang tidak valid.
Contoh User
struktur dokumen:
{
"_id" : ObjectId("..."),
"firstName" : "Harry",
"lastName" : "Potter",
"profile" : {
"_id" : ObjectId("..."),
"skills" : [
{
"_id" : ObjectId("..."),
"title" : "Java",
"description" : "Master",
"dateFrom" : "31/07/2019",
"coreSkill" : true
},
{
"_id" : ObjectId("..."),
"title" : "JavaScript",
"description" : "Proficient",
"dateFrom" : "31/07/2019",
"coreSkill" : false
}
],
}
}