[英]How to get list of document uri names from a database marklogic?
嘿我想從給定的MarkLogic數據庫中獲取所有文檔名稱/ uri的列表。
我在stackoverflow中找到了這一行: 如何獲取Marklogic數據庫中的文檔總數?
...將獲取數據庫中的文檔計數。 我不知道如何修改它以列出所有文檔URI。
還給出了一個文檔URI,我想看看它是否存在於數據庫中?
我試過以下,但無法實現同樣的目標
for $x in xdmp:directory("/myDirectory/", "1")
return
fn:document-uri($x)
我需要一個像這樣的Xquery命令。 我是marklogic的新手,有人可以幫我嗎?
如果您需要從數據庫中獲取所有內容,請使用uri列表cts:uris()
。 它只會返回uri,並且不需要像fn:doc()
那樣返回完整的文檔。 如果uri詞典在數據庫級別設置為true,那么它將在內存索引中啟動。
如果要檢查文檔是否存在,請使用
1-如果您使用過集合,那么您可以使用
for $each in collection("collection-name") return fn:document-uri($each)
2-如果您有相同的目錄結構,請使用
for $each in xdmp:directory("/myDirectory/", "infinity") return fn:document-uri($each)
3-如果你沒有使用上述任何一種情況,你可以使用cts:uris()
請注意為了使用cts:uris(), URI Lexicon
需要啟用cts:uris(), URI Lexicon
。
如果沒有給出參數,則fn:doc()將返回所有文檔的列表,如果給出了URI,則返回文檔。 因此,要列出數據庫中的所有URI,請使用:
for $x in fn:doc()
return fn:document-uri($x)
有關更多信息,請參閱fn:doc 。 如果要檢查文檔是否存在,只需使用帶有URI的fn:doc()
:
fn:doc("/example/uri.xml")
查找文檔是否存在的另一個選項:
xdmp:exists(doc("uri.xml"))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.