Как сгенерировать количество элементов, возвращаемых из функции карты? - PullRequest
1 голос
/ 25 июня 2019

У меня есть функция карты

function (doc) {
    for(var n =0; n<doc.Observations.length; n++){
        emit(doc.Scenario, doc.Observations[n].Label);
    } 
}

Вышесказанное возвращает следующее:

{"key":"Splunk","value":"Organized Alerts"},
{"key":"Splunk","value":"Organized Alerts"},
{"key":"Splunk","value":"Organized Alerts"},
{"key":"Splunk","value":"Generate Incident Report"},
{"key":"Splunk","value":"Ingest Data"}

Я рассчитываю разработать функцию приведения, которая затем будет возвращать счет вышеупомянутых значений, что-то вроде:

Organized Alerts: 3
Generate Incident Report: 1
Ingest Data: 1

Моя функция карты должна фильтровать мое поле Сценария, поэтому я использую ее в качестве ключа в функции карты.

Я пытался использовать ряд встроенных функций Reduce, но в итоге я получил количество строк, или ничего, поскольку доступные функции не применяются.

Мне просто нужно получить доступ к количеству каждого из элементов, которые появляются в поле значений. Кроме того, значения, представленные здесь, являются репрезентативными, в поле значений могут быть найдены сотни различных значений.

Я очень ценю помощь!

Вот пример ввода:

{
    "_id": "e803c7491f63cdf3cb201c867c00d52c",
    "Scenario": "Splunk",
    "Team": "Alpha",
    "CreatedOnUtc": "2019-06-20T21:39:09.5940830Z",
    "CreatedOnLocal": "2019-06-20T17:39:09.5940830-04:00",
    "Participants": [
        {
            "Name": "A",
            "Role": "CSSP"
        }
    ],
    "Observations": [
        {
           "Label": "Generate Incident Report",
        },
        {
            "Label": "Ingest Data",
        },
        {
            "Label": "Generate Data",
        },
        {
            "Label": "Ingest Data",
        }
     ]
}

1 Ответ

1 голос
/ 26 июня 2019

Вы можете установить карту как «значение» в качестве ключа и связать приращение с этим ключом, чтобы убедиться, что счет сохраняется. И тогда вы можете распечатать карту, которая должна выглядеть так, как вы запрашиваете.

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