Azure cosmosdb 要查询的CosmosDB SQL";任何;子字段

Azure cosmosdb 要查询的CosmosDB SQL";任何;子字段,azure-cosmosdb,Azure Cosmosdb,给定如下的文档结构,其中“variants”有N个基于id的子条目,我想在内部的“sku”字段上进行筛选。类似于此: SELECT * FROM c WHERE c.variants.?.sku = "some_sku_1" 这里的“some_id_1”和“some_id_2”是id值,由数据驱动,不能作为查询的一部分 Cosmos DB是否可能实现这一点?如果可能,如何实现 { "id": "45144", "variants": { "some_id_1":

给定如下的文档结构,其中“variants”有N个基于id的子条目,我想在内部的“sku”字段上进行筛选。类似于此:

SELECT * FROM c WHERE c.variants.?.sku = "some_sku_1"
这里的“some_id_1”和“some_id_2”是id值,由数据驱动,不能作为查询的一部分

Cosmos DB是否可能实现这一点?如果可能,如何实现

{
    "id": "45144",
    "variants": {
        "some_id_1": {
            "sku": "some_sku_1",
            "title": "some title 1"
        },
        "some_id_2": {
            "sku": "some_sku_2",
            "title": "some title 2"
        }
    }
}

如果不使用UDF/SPROC,就无法使用该模式,但是如果稍微更改模式,就可以这样做

模式:

{
    "id": "45144",
    "variants": [
        {
            "id": "some_id_1",
            "sku": "some_sku_1",
            "title": "some title 1"
        },
        {
            "id": "some_id_2"
            "sku": "some_sku_2",
            "title": "some title 2"
        }
    ]
}
查询:

SELECT * FROM c IN Item.variants WHERE c.sku == "some_sku_1"

查看本文,了解使用“IN”语句可以实现哪些功能,该语句允许您在对象上进行迭代。

如果不使用UDF/SPROC,则无法使用该模式,但如果稍微更改模式,则可以这样做

模式:

{
    "id": "45144",
    "variants": [
        {
            "id": "some_id_1",
            "sku": "some_sku_1",
            "title": "some title 1"
        },
        {
            "id": "some_id_2"
            "sku": "some_sku_2",
            "title": "some title 2"
        }
    ]
}
查询:

SELECT * FROM c IN Item.variants WHERE c.sku == "some_sku_1"
查看这篇文章,了解“IN”语句可能的功能,它允许您在对象上进行迭代