从多个集合中检索文档

Retrieve Documents from Multiple Collection

我将文档存储在 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”集合的一部分。

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

另一种情况可以是 - 假设您要检索属于“user”和 "access" 集合的文档。在这种情况下,您可以在 cts:search query.

中使用 cts:and-query

希望对您有所帮助!