Cosmos DB左连接

时间:2019-08-12 14:45:33

标签: azure azure-cosmosdb

Cosmos DB的所有文档,似乎只支持JOIN关键字,这似乎是一种INNER JOIN

我有以下查询:

SELECT * FROM
(
    SELECT 
        DISTINCT(c.id),
        c.OtherCollection,
    FROM c
    JOIN s IN c.OtherCollection
)
AS c order by c.id

这可以正常工作,并返回填充了OtherCollection的文档的数据。但是它显然不会返回没有填充它的任何文档。

加入的原因是有时我执行以下查询(查询是根据用户输入建立的)

SELECT * FROM
(
    SELECT 
        DISTINCT(c.id),
        c.OtherCollection,
    FROM c
    JOIN s IN c.OtherCollection
    WHERE s.PropertyName = 'SomeValue'
)
AS c order by c.id

问题是在这种情况下如何拥有一种LEFT JOIN运算符?

1 个答案:

答案 0 :(得分:0)

CosmosDB JOIN 操作仅限于单个文档的范围。您可以在同一文档下将父对象与子对象连接起来。

它与支持两个/多个表的SQL Join查询完全不同。