cts: values ​​функция не возвращает все значения для ссылки на путь - PullRequest
4 голосов
/ 08 мая 2020

Предположим, у меня есть три документа в MarkLogi c, как показано ниже,

 <employee>
    <name>a</name>
    <age>10</age>
</employee>

<employee>
    <name>b</name>
    <age>10</age>
</employee>

<employee>
    <name>c</name>
    <age>10</age>
</employee>

URI документов - / employee / a, / employee / b, / employee / c соответственно. Я создал индекс диапазона путей для "/employee/age" как int скалярный стиль.

Мое требование - получить сумму всех значений индекса диапазона путей "/employee/age".

Я пробовал - sum(cts:values(cts:path-reference("/employee/age"))), но он возвращает 10 в качестве выходной суммы здесь Я ожидаю 30 в качестве выходной суммы .

Каким будет решение для указанной выше проблемы?

1 Ответ

5 голосов
/ 08 мая 2020

Функция cts:values() возвращает список присутствующих различных значений. Он вернул одно значение 10, поэтому ваша сумма была 10.

Попробуйте cts:sum-aggregate(), что подходит для этого варианта использования и учитывает частоту. Документы можно найти по адресу http://docs.marklogic.com/cts: sum-aggregate .

...