Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用MarkLogicJava API列出集合_Marklogic_Marklogic 9 - Fatal编程技术网

使用MarkLogicJava API列出集合

使用MarkLogicJava API列出集合,marklogic,marklogic-9,Marklogic,Marklogic 9,我想获得数据库中所有集合的列表。我知道如何使用XQuery代码执行此操作: cts:collections("*") 但我很难弄清楚如何使用MarkLogicJavaAPI实现这一点 我正在阅读StructuredQueryBuilder,但它似乎太复杂,无法实现我的目标 您可以使用ServerEvaluationCall执行XQuery ServerEvaluationCall call = databaseClient.newServerEval().xquery("cts:colle

我想获得数据库中所有集合的列表。我知道如何使用XQuery代码执行此操作:

cts:collections("*")  
但我很难弄清楚如何使用MarkLogicJavaAPI实现这一点


我正在阅读StructuredQueryBuilder,但它似乎太复杂,无法实现我的目标

您可以使用ServerEvaluationCall执行XQuery

ServerEvaluationCall call = databaseClient.newServerEval().xquery("cts:collections(\"*\")");
for (EvalResult result : call.eval()) {
   String collection = result.getString();
   System.out.println(collection);
}

您可以使用
queryoptionmanager.writeOptions​()
要保留定义集合词典的值查找的查询选项,请执行以下操作:

<options xmlns="http://marklogic.com/appservices/search">
  <values name="collections">
    <collection/>
  </values>
</options>

然后使用
QueryManager.values()
请求获取集合

有关详细信息,请参见:

作为替代方案,为了获得更大的灵活性和控制,您可以在服务器上安装JavaScript或XQuery资源服务扩展或主模块,并调用资源服务扩展或调用该模块

在开发服务器端代码时,可以使用eval()快速迭代。唯一需要注意的是,出于安全考虑(特别是当操作要求用户具有提升的权限时),不鼓励在生产中使用eval()


希望这是有用的,

小提示:我建议删除
“*”
参数。它可能没有做你期望的事情。如果要使用模式筛选集合名称,请使用。