如何使用 .Net XCC 检查 MarkLogic 数据库的集合中是否存在文档?
问问题
434 次
2 回答
2
如果性能很重要,您可能希望避免为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-07T22:58:18.507 回答
1
假设您了解基本知识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:
”的值作为外部变量传递给查询。
于 2013-03-07T12:46:43.630 回答