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

Shi*_*are 4 marklogic marklogic-9

假设我在 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>
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

hun*_*ker 5

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

尝试cts:sum-aggregate()哪个适合此用例并考虑频率。可以在http://docs.marklogic.com/cts:sum-aggregate找到文档。