使用以下2个MarkLogic Xqueries来获得预期结果:
按时间戳列出所有文件
for $x in xdmp:document-properties()//prop:last-modified
order by $x descending
return <uri>{xdmp:node-uri($x)} {$x}</uri>
从最新文件中搜索文档中的字符串
for $a in doc("/contentC:/MLDemo/DataFiles/1234.xml")/*//@System_Name
where $a ="Exchange"
return $a
我是Marklogic和Xquery的新手。有人可以帮助我将这两个单独的脚本组合成一个脚本。
提前致谢。
答案 0 :(得分:1)
假设您没有更改默认配置,prop:last-modified
应该会有所帮助。
请参阅https://docs.marklogic.com/guide/app-dev/properties以了解有关属性的更多信息。
请注意,/*//@System_Name where $a ="Exchange"
对大型数据库的效果不佳。指定元素并使用XPath谓词。尝试更像/a/b/c[@d eq $value]
的内容 - 或者如果您有多个元素/a/b/(c|d|e)[@z eq $value]
答案 1 :(得分:1)
let $URI:=<uris>{
for $x in xdmp:document-properties()//prop:last-modified
order by $x descending
return <uri>{xdmp:base-uri($x)}</uri>
}</uris>
for $a in $URI//uri
let $doc:= doc($a)/*//@System_Name
where $a ="Exchange"
return $a
答案 2 :(得分:0)
这个问题有很多答案。
我建议你学习基本的XQuery语法。例如,尝试http://www.amazon.com/XQuery-Priscilla-Walmsley/dp/0596006349
答案 3 :(得分:-1)
for $a in doc("/contentC:/MLDemo/DataFiles/1234.xml")/*//@System_Name
return
if($a eq "Exchange") then
for $x in xdmp:document-properties()//prop:last-modified
order by $x descending
return <uri>{xdmp:node-uri($x)} {$x}</uri>
else ()