如何使用serialize获取collection/user/bibliography中的2000个文档,然后使用MLCP导出数据。
let $query:=cts:and-query(cts:collection-query("/user/bibliography"))[1 to 2000]
let $serialize := xdmp:quote(
<query>{$query}</query>/*,
<options xmlns="xdmp:quote"><indent>no</indent></options>
)
return $serialize
(:serialize return 但它没有显示限制 1 到 2000 条记录。
<cts:and-query xmlns:cts="http://marklogic.com/cts"><cts:collection-
query><cts:uri>/user/bibliography</cts:uri></cts:collection-query>
</cts:and-query>
:)
查询本身只是您想要的文档的描述。为了获取这些文档,您需要将查询作为参数传递给cts:search
函数。
但是,如果您使用的是 MLCP,则无需手动序列化文档,MLCP 会在将文档写入磁盘时自动序列化文档。此外,如果您序列化两次,您可能会在输出中得到双重编码的字符。
如果您序列化此查询的原因是在单个文档中输出所有内容,则将结果包装cts:search
在根元素中并用于xdmp:document-insert
将(未序列化的)输出插入到数据库中。然后使用 MLCP 将其导出。否则,您根本不需要编写 XQuery,因为您应该能够使用集合过滤器和限制参数在 MLCP 中完成所有操作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句