使用MarkLogicJava API列出集合
我想获得数据库中所有集合的列表。我知道如何使用XQuery代码执行此操作:使用MarkLogicJava API列出集合,marklogic,marklogic-9,Marklogic,Marklogic 9,我想获得数据库中所有集合的列表。我知道如何使用XQuery代码执行此操作: cts:collections("*") 但我很难弄清楚如何使用MarkLogicJavaAPI实现这一点 我正在阅读StructuredQueryBuilder,但它似乎太复杂,无法实现我的目标 您可以使用ServerEvaluationCall执行XQuery ServerEvaluationCall call = databaseClient.newServerEval().xquery("cts:colle
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()
希望这是有用的,小提示:我建议删除
“*”
参数。它可能没有做你期望的事情。如果要使用模式筛选集合名称,请使用。