Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xquery 如何使用MarkLogic中的cts:values获得元素的最大值?_Xquery_Marklogic - Fatal编程技术网

Xquery 如何使用MarkLogic中的cts:values获得元素的最大值?

Xquery 如何使用MarkLogic中的cts:values获得元素的最大值?,xquery,marklogic,Xquery,Marklogic,我想从数据库中存在的所有文档中获取的最大值 样本文件- <root xmlns="http://marklogic.com/sample"> <node> <ID>3253523</ID> <value1>.....</value1> <value2>.....</value2> <value3>.....</value3> <value4>.

我想从数据库中存在的所有文档中获取
的最大值

样本文件-

<root xmlns="http://marklogic.com/sample">
 <node>
  <ID>3253523</ID>
  <value1>.....</value1>
  <value2>.....</value2>
  <value3>.....</value3>
  <value4>.....</value4>
   .....................
 </node>
</root>

3253523
.....
.....
.....
.....
.....................
我尝试的方法如下-

  • 我创建了一个带有前缀sa和uri
    http://marklogic.com/sample

  • 创建了int类型的路径范围索引,路径为
    /sa:root/sa:node/sa:ID

  • 3.尝试使用以下代码从数据库中获取最大值-

    声明命名空间sa=”http://marklogic.com/sample";
    (cts:values(cts:path引用('/sa:root/sa:node/sa:ID'),(),“降序”)[1]

    但这给了我一个空序列。不知道我在这里错过了什么


    有什么建议吗?

    正如Elijah Bernstein Cooper所建议的那样 我刚刚添加了
    xmlns=”http://marklogic.com/sample“
    命名空间在您共享的xml中,并在数据库中插入了一些xml文件

    创建了路径名称空间、路径范围索引并运行了共享cts查询,它工作得非常好,因此
    Elijah
    是正确的,您只需要在xml中指定名称空间

    查询中的小更改在
    declare namespace
    语句中,前缀将是
    sa
    而不是
    es


    希望这能有所帮助。

    正如Elijah Bernstein Cooper所建议的那样 我刚刚添加了
    xmlns=”http://marklogic.com/sample“
    命名空间在您共享的xml中,并在数据库中插入了一些xml文件

    创建了路径名称空间、路径范围索引并运行了共享cts查询,它工作得非常好,因此
    Elijah
    是正确的,您只需要在xml中指定名称空间

    查询中的小更改在
    declare namespace
    语句中,前缀将是
    sa
    而不是
    es


    希望这有帮助。

    尝试将命名空间绑定作为第三个参数传递给。见:

    顺便说一下,这可能是从范围索引中获取最大值的最有效方法。见:

    该方法类似于以下片段:

    cts:max(
        cts:path-reference('/sa:root/sa:node/sa:ID', (),
            map:entry("sa", "http://marklogic.com/sample")
        ))
    

    希望这能有所帮助,

    尝试将带有名称空间绑定的映射作为第三个参数传递给。见:

    顺便说一下,这可能是从范围索引中获取最大值的最有效方法。见:

    该方法类似于以下片段:

    cts:max(
        cts:path-reference('/sa:root/sa:node/sa:ID', (),
            map:entry("sa", "http://marklogic.com/sample")
        ))
    

    希望这有所帮助,

    您确定节点具有名称空间
    http://marklogic.com/sample
    ?我希望根元素看起来像
    。您的其余步骤看起来可以正常工作。是的,很抱歉,我忘了在示例文档中添加它。但是无论您提到什么,它看起来都是一样的。是因为int值太长了吗
    3253523
    http://marklogic.com/sample?我希望根元素看起来像
    。您的其余步骤看起来可以正常工作。是的,很抱歉,我忘了在示例文档中添加它。但是它看起来和你提到的一样。是因为int值太长了吗?
    3253523
    ?谢谢我修改了名称空间。但不知何故,我遗漏了一些东西,它给了我一个空序列。请提供
    cts:query
    从qconsole保存在数据库中的xml屏幕截图以及8001端口的路径名称空间和路径范围索引的
    屏幕截图。这将帮助我在更短的时间内帮助您。谢谢,我修改了名称空间。但不知何故,我遗漏了一些东西,它给了我一个空序列。请提供
    cts:query
    从qconsole保存在数据库中的xml屏幕截图以及8001端口的路径名称空间和路径范围索引的
    屏幕截图。这将有助于我在更短的时间内帮助您。@ehennum--您能给我一个关于如何在这种情况下使用
    cts:max()
    的示例吗。@ehennum--您能给我一个关于如何在这种情况下使用
    cts:max()
    的示例吗。