Как отобразить вставленные xml-документы по порядку в Marklogic?

Я вставляю некоторые XML-документы из пользовательского интерфейса в Marklogic Server и одновременно показываю их в списке. Я хочу показать документы в порядке. Документ, вставленный первым, должен стоять первым в списке. Второй документ должен стоять на втором месте и так далее. Но Marklogic показывает их случайным образом без какого-либо порядка.


person Puneet Pant    schedule 20.06.2012    source источник


Ответы (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