У меня есть 1000 документов персонала в CouchDB, которые в упрощенном формате выглядят так:
{
"_id": "1111",
"departmentId": "dept_A",
"siteId": "SITE_1"
}
{
"_id": "2222",
"departmentId": "dept_B",
"siteId": "SITE_1"
}
{
"_id": "3333",
"departmentId": "dept_C",
"siteId": "SITE_1"
}
{
"_id": "4444",
"departmentId": "dept_C",
"siteId": "SITE_1"
}
{
"_id": "5555",
"departmentId": "dept_A",
"siteId": "SITE_2"
}
{
"_id": "6666",
"departmentId": "dept_A",
"siteId": "SITE_2"
}
У меня есть такой вид:
function (doc) {
if (doc.departmentId && doc.siteId) {
emit(doc.siteId, doc.departmentId);
}
}
Который будет отображать данные так:
{"SITE_1": "dept_A"}
{"SITE_1": "dept_B"}
{"SITE_1": "dept_C"}
{"SITE_1": "dept_C"}
{"SITE_2": "dept_A"}
{"SITE_2": "dept_A"}
Однако я хотел бы использовать пользовательскую функцию уменьшения с представлением CouchDB для группировки данных следующим образом:
{"SITE_1": ["dept_A", "dept_B", "dept_C"]}
{"SITE_2": ["dept_A"]}
Пользовательская функция уменьшения для представления CouchDB запускается так:
function (keys, values, rereduce) {
}