[英]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.