如何使用序列化在集合/ user /参考书目中获取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>
:)
答案 0 :(得分:0)
查询本身只是您想要的文档的描述。为了获取这些文档,您需要将查询作为参数传递给cts:search
函数。
但是,如果您使用的是MLCP,则不需要手动序列化文档,它会在将文档写入磁盘时自动序列化文档。另外,如果您两次序列化,则最终可能在输出中使用双编码字符。
如果要序列化此查询的原因是将所有内容输出到单个文档中,则将cts:search
的结果包装在根元素中,并使用xdmp:document-insert
将(未序列化的)输出插入到数据库。然后使用MLCP导出该文件。否则,您根本不需要编写XQuery,因为您应该能够使用集合过滤器和限制参数在MLCP中完成所有操作。