我将文档存储在 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/