【问题标题】:Hierarchical Queries in cosmos db(document db) SQL APIcosmos db(document db) SQL API 中的分层查询
【发布时间】:2020-07-20 04:29:08
【问题描述】:

我需要查询 cosmos db 中具有分层链接的容器。

假设我们有表员工:

EMP_ID MANAGER_ID NAME
120 110 JOHN
110 100 MIKE
100 NULL PAM

如果我查询 EMP_ID 100,则查询应返回 ID 为 100 或属于“PAM”的所有员工。我做了一些研究,发现 Oracle SQL 支持 CONNECT BY。在 PostgreSQL 中,这可以通过递归 CTE 来完成。我已经在 cosmos db SQL 中尝试了这两种方法,但似乎都不起作用。 cosmos db 中是否有一些开箱即用的支持来支持这些类型的查询?

【问题讨论】:

    标签: sql nosql azure-cosmosdb hierarchical-data


    【解决方案1】:

    您希望看到的行为与加入 Cosmos DB 中不支持的多个文档有关。你已经正确地提到在 oracle 中使用 CONNECT BY 来达到同样的目的。

    问题的答案在于正确设计模型以处理上述情况。我鼓励您阅读下面的链接,这些链接有很好的描述。

    1. self-join on documentdb syntax error
    2. https://docs.microsoft.com/en-us/azure/cosmos-db/modeling-data

    但是,如果您使用任何 SDK 连接到 Cosmos DB,则只需编写“Select query with conditions”即可引入整个结果集,然后使用内置库(LINQ 或任何其他方式)可根据需要对结果进行建模,虽然不推荐。

    【讨论】:

      猜你喜欢
      • 2018-12-17
      • 2019-09-26
      • 2018-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-21
      相关资源
      最近更新 更多