我需要在cosmosdb中查询一个有层次链接的容器。
假设我们有员工:
emp\u id经理\u id姓名120110john11000mike100nullpam
如果我查询emp\u id 100,查询应该返回所有id为100或在“pam”下的雇员。我做了一些研究,发现oraclesql支持connectby。在postgresql中,这可以通过递归cte来完成。我在cosmosdbsql中尝试了这两种方法,但似乎都不起作用。cosmosdb中是否有一些现成的支持来支持这些类型的查询?
我需要在cosmosdb中查询一个有层次链接的容器。
假设我们有员工:
emp\u id经理\u id姓名120110john11000mike100nullpam
如果我查询emp\u id 100,查询应该返回所有id为100或在“pam”下的雇员。我做了一些研究,发现oraclesql支持connectby。在postgresql中,这可以通过递归cte来完成。我在cosmosdbsql中尝试了这两种方法,但似乎都不起作用。cosmosdb中是否有一些现成的支持来支持这些类型的查询?
1条答案
按热度按时间sf6xfgos1#
您希望看到的行为与连接cosmos db中不支持的多个文档有关。您正确地提到了在oracle中使用connect by的目的。
问题的答案在于正确地设计模型来处理上述场景。我鼓励你阅读下面的链接,这些链接对同一问题有很好的描述。
documentdb上的自联接语法错误
https://docs.microsoft.com/en-us/azure/cosmos-db/modeling-data
但是,如果您使用任何SDK连接到cosmos db,则只需编写“select query with conditions”即可引入整个结果集,然后使用内置库(linq或任何其他方式)对结果进行建模,尽管不建议这样做。