Azure cosmosdb 你怎么看待宇宙数据库中的连接?

Azure cosmosdb 你怎么看待宇宙数据库中的连接?,azure-cosmosdb,Azure Cosmosdb,我对cosmosdb关于连接的文档感到非常困惑。按照惯例,当我想到一个连接时,我会想到2个表,其中有一个共享id,我在其中执行连接。这两个表具有不同的模式,但联接的结果是合并了两个表中的列的组合表。在我看来,cosmosdb的加入在直觉上与此不一致 我收集了一批异构数据。每个文档可以有不同于下一个文档的结构。我想统计子查询结果集中存在值的文档数。直觉上,我想做这样的事情: SELECT COUNT(1) as c FROM CollectionName as outer where outer.

我对cosmosdb关于连接的文档感到非常困惑。按照惯例,当我想到一个连接时,我会想到2个表,其中有一个共享id,我在其中执行连接。这两个表具有不同的模式,但联接的结果是合并了两个表中的列的组合表。在我看来,cosmosdb的加入在直觉上与此不一致

我收集了一批异构数据。每个文档可以有不同于下一个文档的结构。我想统计子查询结果集中存在值的文档数。直觉上,我想做这样的事情:

SELECT COUNT(1) as c
FROM CollectionName as outer
where outer.type = "table"
JOIN ((SELECT c.id from c where c.type = "database") as inner) on outer.databaseId == t.id
// count the number of tables that are in deleted databases
看起来我需要将子查询的结果与外部查询的结果进行连接,然后处理结果表。但我现在不明白该怎么做:

Select COUNT(1)
from Collection outer
where outer.type = 'table'
JOIN (select c.id from c IN outer.databaseId where c.type = "database" and c.state = "deleted") 

我经常得到一个400以上的查询。那么,我该如何看待cosmosdb中的连接呢?

Cosmos是一个文档数据库。它存储和操作json数据,这些数据可以是分层格式。在这些层次结构中加入Cosmos引用元组,可以将它们与文档中的其他数据一起投影

有一篇非常好的文章在相当深的层次上讨论了这一点,但也有很多例子

这需要一些时间来习惯编写这样的查询,但一旦你掌握了窍门,你就会没事了。您可以使用具有一系列关于食品和配料的营养数据集的示例查询的来轻松练习查询。或者在文档中随附族数据。您可以创建其他项,然后编写一些查询以查看联接的工作方式


希望这会有帮助。

谢谢你的回答。我已经看过那个文档了。我不相信它是清楚的,在我看来,这些例子并不能解释如何在cosmosdb中考虑连接。事实上,似乎不可能跨文档联接,只能在文档内联接。从上述文件中不清楚这一点。我只是通过一个同事听说的。如果您还想推荐其他文档,我将不胜感激。