如何在Marklogic中按顺序显示插入的xml文档?

时间:2012-06-20 13:25:42

标签: xquery marklogic

我在Marklogic Server中从UI插入一些xml文档,同时在列表中显示它们。我想在订单中显示文件。首先插入的文档应该在列表中排在第一位。第二个文件应该排在第二位,依此类推。但Marklogic随意展示它们而没有任何订单。

2 个答案:

答案 0 :(得分:2)

使用MarkLogic Server时,不会保留或保留插入顺序。如果您希望保留文档的插入顺序,则数据或数据的属性将需要一些值,服务器可以在其上执行“order by”子句。

for $doc in fn:doc()
order by $doc//some-aspect-of-the-xml-structure
return
$doc

这些文档在“无共享”架构中确实独立于彼此。这有助于MarkLogic比一些关系数据库方法运行得更快,其中“行”在“表”中共享成员资格和排序,因此无法有效地进行聚类。

答案 1 :(得分:0)

您可以按上次更新的数据订购文件:

(:If uri lexicone is enabled, else you can iterate by fn:collection():)
for $uri in cts:uris((), "document") 
let $updated-date := xdmp:document-get-properties($uri, fn:QName("http://marklogic.com/cpf", "last-updated"))
order by $updated-date/text()
return $uri

还有另一种方法,不使用uri词典:

for $doc in fn:collection()
let $uri := xdmp:node-uri($doc)
let $updated-date := xdmp:document-get-properties($uri, fn:QName("http://marklogic.com/cpf", "last-updated"))
order by $updated-date/text()
return $uri