Функция MapReduce для суммирования значений, сгруппированных по ключу - PullRequest
0 голосов
/ 16 октября 2018

Я создал приложение контактов, используя CouchDB для хранения контактов.Пример документа вы найдете ниже.Я пытаюсь использовать функцию MapReduce, чтобы вернуть имя контакта и количество контактов с этим именем.

Примеры документов:

Документ 1:

{
  "_id": "2b0c6d587b0bce12f510c2400a003add",
  "_rev": "1-3cfdc3f185ea42c0672b7960667ed3e4",
  "firstName": "Alan",
  "lastName": "O' Sullivan",
  "number": {
    "home": "0662837462",
    "mobile": "0872817263"
  },
  "email": "alan.osullivan@gmail.com"
}

Doc 2:

{
  "_id": "2b0c6d587b0bce12f510c2400a003add",
  "_rev": "1-3cfdc3f185ea42c0672b7960667ed3e4",
  "firstName": "Alan",
  "lastName": "O' Sullivan",
  "number": {
    "home": "0662837462",
    "mobile": "0872817263"
  },
  "email": "alan.osullivan@gmail.com"
}

Doc 3:

{
  "_id": "2b0c6d587b0bce12f510c2400a003add",
  "_rev": "1-3cfdc3f185ea42c0672b7960667ed3e4",
  "firstName": "Timmy",
  "lastName": "Bobby",
  "number": {
    "home": "0662837462",
    "mobile": "0872817263"
  },
  "email": "timmy.bobby@gmail.com"
}

Пример того, что я хочу, чтобы функция MapReduce возвращала на основе этих документов, приведенных выше:

{"rows":[
{"key":"Alan","value":2}
{"key":"Timmy","value":1}
]}

Значение для Alan равно 2, так как есть два контакта с именем Alan.Значение для Тимми равно 1, поскольку существует один контакт с именем Тимми.

...