cts:values 函数未返回路径引用的所有值

cts:values function not returning all the values for path reference

假设我在 MarkLogic 中有如下三个文档,

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

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

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

文档 uris - 分别为 /employee/a、/employee/b、/employee/c。 我已经为 "/employee/age" 创建了路径范围索引作为 int 标量类型。

我的要求是 - 获取路径范围索引的所有值的总和 "/employee/age"

我试过 - sum(cts:values(cts:path-reference("/employee/age")))它返回 10 作为输出总和 这里我期待30 作为输出总和.

上述问题的解决方案是什么?

cts:values() 函数 returns 存在的不同值的列表。它返回了一个 10 值,所以你的总和是 10。

尝试 cts:sum-aggregate(),它适合此用例并考虑了频率。可以在 http://docs.marklogic.com/cts:sum-aggregate.

找到文档