【问题标题】:Marklogic cts:document-queryMarklogic cts:文档查询
【发布时间】:2013-12-07 13:55:53
【问题描述】:

最近要使用MarkLogic,有一些不明白的地方。

我不想让你澄清我对 MarkLogic 的所有担忧,只是一个 :)

有一个 XQuery,我不明白它的作用。

let $pap := cts:uris(
   (), (),
   cts:and-query((
      cts:collection-query("/pageType/collection1"),
   ))
)

let $collection := ("/pageType/Attachment")
return
xdmp:estimate(
   cts:search(
      fn:doc(),
      cts:and-query((
         cts:collection-query(($collection)),
         cts:document-query($pap)
      ))
   )
)

我很难理解文档查询功能的作用。

有人可以告诉我吗?我是 MarkLogic 的初学者,之前使用过关系数据库。

谢谢,

V.

【问题讨论】:

    标签: xquery marklogic


    【解决方案1】:

    不要因为不理解这一点而感到难过。它有点钝。而且效率低。

    如果我没看错,它真正做的是计算属于“/pageType/Attachement”和“/pageType/collection1”这两个集合的文档数

    我相信(未经测试)这可以通过这样做大大简化

    xdmp:估计( cts:搜索( fn:doc(), cts:and-query(( cts:collection-query("/pageType/collection1"), cts:collection-query("/pageType/Attachment") )) ) )

    【讨论】:

    • 在某些情况下,您可能会使用这样的查询来实现连接。可能是这样开始的。
    【解决方案2】:

    我忽略了回答你的第一个问题。 cts:document-query() 记录在这里:

    https://docs.marklogic.com/cts:document-query

    在这种情况下,它充当cts:search 返回的过滤器,以仅包含上一个查询cts:uris() 找到的文档

    【讨论】:

    • 达尔迪早上好,感谢您的帮助!我来自关系数据库世界,在上面的表达式中找不到任何连接(如 product.id = sale.product_id)。可能我不需要任何这样的链接,但我不明白两个集合中的相关页面如何“找到”对方。再次感谢,V。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多