除特定集合外的 MLCP 导出

问题描述

我需要从数据库中导出所有文档,但特定集合中的文档除外。

假设我有一个名为 test1(100 个文档)、test2(200 个文档)和 test3(100 个文档)

根据我的要求,我想从 test1test2 集合中导出所有文档,而不是从 test3 集合中导出。

是否可以使用 MLCP 来做到这一点?

解决方法

我将应用带有 -query_filtercts: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"]}}}}