marklogic - 从多个集合中检索文档

标签 marklogic marklogic-8

我将文档存储在 Marklogic 中,如下所示,

Collection : system, user
Documents Stored
 1. /system/user/1
 2. /system/user/2

Collection : system, role
Documents Stored
 1. /system/role/1
 2. /system/role/2

Collection : system, access
Documents Stored
 1. /system/access/1
 2. /system/access/2

现在我的要求是我想要所有只是系统、访问集合的一部分的文档,所以我尝试了,

for $doc in cts:search(collection(("system", "access")), ())
return 
      (  
        document-uri($doc)
      )

在此处执行上述代码后,我期待 /system/access/1/system/access/2 因为这两个文档只是 的一部分” system”,“access” 集合,但在这里我从集合:系统,用户集合:系统,角色获取所有文档。 我无法理解代码的错误或者我遗漏了一些东西。

请帮我解决这个问题。

最佳答案

您的代码的问题如下 -

您存储的所有 6 个文档都是“系统”集合的一部分。

很明显,每当您尝试提供集合(“system”)时,它都会获取所有文档。

另一种情况可以是 - 假设您要检索属于“用户”和“访问”集合一部分的文档。在这种情况下,您可以在 cts:search 查询中使用 cts:and-query

希望有帮助!

关于marklogic - 从多个集合中检索文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51166668/

相关文章:

gradle - 调度MarkLogic数据中心流/自定义步骤的最佳方法

Marklogic XCC 或 JAVA/REST

marklogic - 如何在 Apache Tomcat 中部署 Marklogic XCC 库?

node.js - Marklogic 8 Node.js API - 短语搜索

marklogic - MarkLogic 中同一文档的多个 URI?

java - MarkLogic - 来自 Java 的 SPARQL

xquery - 如何导入多个 xsd 文件以在 xQuery Marklogic 中进行验证

xml:lang 添加到文档时破坏了我的查询

Marklogic (Nodejs API) - 搜索与对象数组属性中的 2 个(或更多)条件匹配的文档

full-text-search - 忽略 cts :search 中的元素