繁体   English   中英

如何从数据库marklogic获取文档uri名称列表?

[英]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,那么它将在内存索引中启动。

如果要检查文档是否存在,请使用

fn:doc-available("uri of document")

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM