Я вставляю некоторые XML-документы из пользовательского интерфейса в Marklogic Server и одновременно показываю их в списке. Я хочу показать документы в порядке. Документ, вставленный первым, должен стоять первым в списке. Второй документ должен стоять на втором месте и так далее. Но Marklogic показывает их случайным образом без какого-либо порядка.
Как отобразить вставленные xml-документы по порядку в Marklogic?
Ответы (2)
Порядок вставки не сохраняется и не сохраняется при работе с MarkLogic Server. Если вы хотите, чтобы порядок вставки вашего документа был сохранен, данные или свойства данных потребуют некоторого значения, на основании которого сервер может выполнить предложение «упорядочить по».
for $doc in fn:doc()
order by $doc//some-aspect-of-the-xml-structure
return
$doc
Документы действительно независимы друг от друга в архитектуре «ничего общего». Это помогает MarkLogic работать намного быстрее, чем некоторые подходы к реляционным базам данных, где «строки» имеют общее членство и порядок в «таблице», и в результате возникают проблемы с эффективной кластеризацией.
person
derickson
schedule
20.06.2012
Упорядочить документы можно по данным последнего обновления:
(: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 lexicon:
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
person
Andrei Orlov
schedule
26.06.2012