从多个架构中查询相同的 objects Cosmos DB

Query Cosmos DB for the same objects from multiple schemas

给存储在 Cosmos DB 中的以下文档,我如何获取每个 child 的 FirstName 字段为 "Bob" 的所有 Child/Children 元素?我正在尝试使用 SQL 查询语法,但没有找到结合两个文档架构结果的正确方法。

// Document 1
{
    "id": "document1",
    "Child": {
        "FirstName": "Bob",
        "LastName": "Smith"
    }
}

// Document 2
{
    "id": "document2",
    "Children": [
        {
            "Name": "Bob",
            "LastName": "Jones"
        },
        {
            "Name": "Sue",
            "LastName": "Jones"
        }
    ]
}

我正在尝试编写一个查询来查找所有 "Bob" child 元素以实现以下输出:

[
    {
        "FirstName": "Bob",
        "LastName": "Smith"
    },
    {
        "Name": "Bob",
        "LastName": "Jones"
    },
]

Cosmos db 文档存储为 json 格式,您不能用单个 sql查询。

那就不能拼合成一个对象了,请看例子:

c.Child不显示。所以,恐怕您需要分别查询 ChildChildren,然后根据您的要求合并它们。


我试着在这里解释一下。在一个查询中 sql 是不可能的。例如,文档 1 不包含子数组,而文档 2 包含。在一个单一的 sql 中, C JOIN Children 是必要的。但是对于文档1,Child join nothing is nothing这样就不会拉出任何结果。你可以试试。

由于cosmos db不支持UNION特性,我还是建议按照上面的建议单独查询合并。