如何使用.Net XCC检查MarkLogic数据库中的集合中是否存在文档?
发布于 2013-03-08 06:58:19
如果性能很重要,您可能希望避免获取xdmp:document-get-collections的片段。如果您启用了URI词典,这是可能的。
exists(
cts:uris(
(), (),
cts:and-query(
(cts:document-query($document-uri),
cts:collection-query($collection-uri)))))这将询问URI词典是否有任何文档URI与指定的集合URI和文档URI匹配。
发布于 2013-03-07 20:46:44
假设您了解XCC的基础知识,请使用AdHoc查询http://docs.marklogic.com/6.0/javadoc/xcc/com/marklogic/xcc/AdhocQuery.html
我所知道的最简单的方法是使用
xdmp:document-get-collections()http://docs.marklogic.com/xdmp:document-get-collections
因此您可以构建一个即席查询,如下所示:
xdmp:document-get-collections("doc.xml") = "collection"注意"=“是一个等于的集合
结果是一个布尔值
如果你担心XQuery注入(即你不能完全控制字符串"doc.xml“),你应该使用一个外部参数。
declare variable $doc external ;
declare variable $collection external ;
xdmp:document-get-collections($doc) = $collection然后将参数"doc“和"collection:”的值作为外部变量传递给查询。
https://stackoverflow.com/questions/15269257
复制相似问题