问题描述
我需要从数据库中导出所有文档,但特定集合中的文档除外。
假设我有一个名为 test1
(100 个文档)、test2
(200 个文档)和 test3
(100 个文档)
根据我的要求,我想从 test1
和 test2
集合中导出所有文档,而不是从 test3
集合中导出。
是否可以使用 MLCP 来做到这一点?
解决方法
我将应用带有 -query_filter
的 cts:and-not-query()
,指定正面和负面的 cts:collection-query()
查询。
cts:and-not-query(
cts:collection-query(("test1","test2")),cts:collection-query("test3")
)
-query_filter
参数值是查询 serialized as either XML or JSON
作为 XML:
<cts:and-not-query xmlns:cts="http://marklogic.com/cts">
<cts:positive>
<cts:collection-query>
<cts:uri>test1</cts:uri>
<cts:uri>test2</cts:uri>
</cts:collection-query>
</cts:positive>
<cts:negative>
<cts:collection-query>
<cts:uri>test3</cts:uri>
</cts:collection-query>
</cts:negative>
</cts:and-not-query>
作为 JSON:
{"andNotQuery":{"positiveQuery":{"collectionQuery":{"uris":["test1","test2"]}},"negativeQuery":{"collectionQuery":{"uris":["test3"]}}}}