我将文档存储在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 ,因为这两个文档只是的一部分”系统”,“访问” 集合,但在这里我从 Collection:系统,用户, Collection:系统,角色获取所有文档。 我无法理解有关Code的错误,或者我缺少某些内容。
请帮助我解决此问题。
答案 0 :(得分:4)
您的代码有如下问题-
您存储的所有6个文档都是“ 系统”集合的一部分。
因此很明显,每当您尝试提供 collection(“ system”)时,它将获取所有文档。
另一种情况是-假设您要检索“ 用户”和“访问”集合中的文档。在这种情况下,您可以在 cts:search 查询中使用 cts:and-query 。
希望有帮助!