Marklogic 如何使用序列化
Marklogic How to use serialize
如何使用serialize得到集合/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,则不需要手动序列化文档,它会在将文档写入磁盘时自动序列化文档。此外,如果您序列化两次,您可能会在输出中得到双重编码的字符。
如果序列化此查询的原因是将所有内容输出到单个文档中,则将 cts:search
的结果包装在根元素中并使用 xdmp:document-insert
插入(未序列化)输出到数据库中。然后使用 MLCP 将其导出。否则,您根本不需要编写 XQuery,因为您应该能够使用集合过滤器和限制参数在 MLCP 中执行所有操作。
如何使用serialize得到集合/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,则不需要手动序列化文档,它会在将文档写入磁盘时自动序列化文档。此外,如果您序列化两次,您可能会在输出中得到双重编码的字符。
如果序列化此查询的原因是将所有内容输出到单个文档中,则将 cts:search
的结果包装在根元素中并使用 xdmp:document-insert
插入(未序列化)输出到数据库中。然后使用 MLCP 将其导出。否则,您根本不需要编写 XQuery,因为您应该能够使用集合过滤器和限制参数在 MLCP 中执行所有操作。