【问题标题】:Retrieve Documents from Multiple Collection从多个集合中检索文档
【发布时间】:2018-07-04 05:57:59
【问题描述】:

我将文档存储在 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" 集合,但这里我从 Collection : system, user, Collection : system, role 获取所有文档。 我无法理解关于 Code 的错误,或者我遗漏了一些东西。

请帮我解决这个问题。

【问题讨论】:

    标签: marklogic marklogic-8


    【解决方案1】:

    您的代码的问题如下-

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

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

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

    希望有帮助!

    【讨论】:

    • Thx @Shalini.. 使用 cts:and-query 后它工作正常。
    • 很高兴它有帮助:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-13
    • 2020-08-04
    • 2018-10-29
    • 2014-05-07
    相关资源
    最近更新 更多