我有一段代码,我想返回特定林中的文档总数.我想确定林文档计数是0还是更多.
declare function local:forest-doc-count($db-name,
$f-id as xs:unsignedLong) as xs:integer {
let $_ := xdmp:log(xdmp:describe(fn:concat("$db-name -->", $db-name), (),()))
let $query := 'xquery version "1.0-ml";
declare variable $f-id as xs:unsignedLong external;
xdmp:estimate(cts:search(fn:doc(), (), (), (), $f-id))'
let $count := xdmp:eval($query , (),
map:entry("f-id", $f-id),
map:entry("database", xdmp:database($db-name))
)
return $count
};
Run Code Online (Sandbox Code Playgroud)
其中$ f-id是林ID,$ db-name是数据库名称.现在我得到了
未定义的变量$ f-id
在查询中声明外部变量,然后将值绑定到调用中的外部变量.
以下草图未经测试,但沿着这些线应该有效:
declare function local:forest-doc-count(
$db-name as xs:string,
$f-id as xs:unsignedLong
) as xs:integer {
xdmp:eval(
'xquery version "1.0-ml";
declare variable $f-id as xs:unsignedLong external;
xdmp:estimate(cts:search(fn:doc(), (), (), (), $f-id))',
map:entry("f-id", $f-id),
map:entry("database", xdmp:database($db-name))
)
};
Run Code Online (Sandbox Code Playgroud)
脚注:您可能希望声明参数类型并在确定时返回值以利用类型检查.
希望这很有用,
| 归档时间: |
|
| 查看次数: |
55 次 |
| 最近记录: |