Карта Уменьшить функцию в couchdb для группировки значений одного и того же ключа - PullRequest
1 голос
/ 11 мая 2019

У меня есть документы на couchdb в следующей форме:

{
  "_id": "ac4a1c9ec5921b8537fcfe4e450046ab",
  "_rev": "4-4911f4615bcefa6dee88068bc8524930",
  "text": "hello how are you",
  "code": 111
}

{
  "_id": "ac4a1c9ec5921b8537fcfe4e450057ee",
  "_rev": "3-f2c94a551065000ba7d468a5a7b2624a",
  "text": "what is your age",
  "code": 112
}

{
  "_id": "ac4a1c9ec5921b8537fcfe4e45010d36",
  "_rev": "1-9c1b7d02eb0497ca3696f2ccda7df2de",
  "text": "keep it up",
  "code": 112
}

Я хочу написать карту, чтобы я мог сгруппировать текстовое поле на основе кода

Вывод должен выглядеть так:

key   Text
111   [hello how are you]
112   [what is your age , keep it up]

1 Ответ

1 голос
/ 11 мая 2019

Это тихо легко сделать, вы можете использовать следующий код.

Вид:

function (doc) {
  emit(doc.code, doc.text);
}

Снижение

function (keys, values, rereduce) {
  return values.join(",")
}

Результат

{"rows":[
{"key":100,"value":"one hundred"},
{"key":123,"value":"hello test,hello world"}
]}

Я проверил это на Cloudant. Дайте мне знать, если есть проблема на CouchDB

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...