You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Cosmos SQL DB中通过JOIN提取数组单个元素的方法

问题:提取查询中mainColour字段为简单数组

原始查询及返回结果

我原本使用以下查询语句:

SELECT c.mainColour,t AS colour 
FROM c
JOIN t IN c.creatorStyleMainColours
WHERE c.creatorDefaultStyleProfile = "test"

该查询返回包含完整colour对象结构的结果:

[
    {
        "colour": {
            "mainColour": "black",
            "colourPairings": [
                "orange",
                "silver",
                "gold"
            ]
        }
    }
]

需求

我需要仅返回mainColour字段的数值,得到类似["black","beige","white"]的简单数组。

尝试的错误查询

我尝试了以下语句,但出现语法错误:

SELECT VALUE c.mainColour,t AS colour 
FROM c
JOIN t IN c.creatorStyleMainColours
WHERE c.creatorDefaultStyleProfile = "test"

完整文档内容

{
    "accountId": "59951c4d-1f0b-483b-a020",
    "creatorDefaultStyleProfile": "test",
    "creatorDefaultStyleGender": "Female",
    "creatorStyleAccountName": "",
    "creatorStyleCategory": [
        {
            "categoryCode": "fashion",
            "categoryName": "Fashion",
            "categoryMetadata": {
                "occasions": [
                    {
                        "occasionCode": "casual",
                        "occasionName": "Casual",
                        "occasionTypes": [
                            {
                                "occasionCode": "out",
                                "occasionName": "Everyday Wear"
                            }
                        ]
                    }
                ],
                "season": [
                    {
                        "seasonCode": "spring",
                        "seasonName": "Spring"
                    }
                ]
            },
            "id": "fashion"
        }
    ],
    "creatorStyleDescription": "",
    "creatorStyleId": "Classic_Default",
    "creatorStyleImages": [
        {
            "styleImageUrl": "https://4965fa50-6caf-11ed-8082e.png",
            "styleImageCategory": "fullsize",
            "styleImageResolution": {
                "width": 269.25,
                "height": 359
            },
            "styleImagePins": [
                {
                    "itemId": "F243906F37487C78D7EB99880142B370",
                    "vector": {
                        "x": 198.125,
                        "y": 44.33332824707031
                    }
                },
                {
                    "itemId": "9B543E0DC1B05F6E9AFD0A88285AEEF9",
                    "vector": {
                        "x": 52.791656494140625,
                        "y": 46.33332824707031
                    }
                },
                {
                    "itemId": "3E6464FC1F12E3C6E435F751438F1468",
                    "vector": {
                        "x": 120.45832824707031,
                        "y": 320.3333282470703
                    }
                },
                {
                    "itemId": "1CD6065A4C7A0BD66E44DC8A62448534",
                    "vector": {
                        "x": 115.45832824707031,
                        "y": 192
                    }
                }
            ]
        }
    ],
    "creatorStyleItems": [
        {
            "creatorStyleItemId": "9B543E0DC1B05F6E9AFD0A88285AEEF9",
            "ItemType": "Chest",
            "creatorStyleItemName": "t-shirt",
            "creatorStyleItemImages": [
                {
                    "imageUrl": "https://images/23660493-1-white?$XXL$",
                    "imageCategory": "thumbnail"
                }
            ]
        },
        {
            "creatorStyleItemId": "F243906F37487C78D7EB99880142B370",
            "ItemType": "Chest",
            "creatorStyleItemName": "chunky knit cardigan",
            "creatorStyleItemImages": [
                {
                    "imageUrl": "https://images/14399002-1-black?$XXL$",
                    "imageCategory": "thumbnail"
                }
            ]
        },
        {
            "creatorStyleItemId": "1CD6065A4C7A0BD66E44DC8A62448534",
            "ItemType": "Leg",
            "creatorStyleItemName": " mom jeans",
            "creatorStyleItemImages": [
                {
                    "imageUrl": "https://images-blue/202501450-1-denimblack?$XXL$",
                    "imageCategory": "thumbnail"
                }
            ]
        },
        {
            "creatorStyleItemId": "3E6464FC1F12E3C6E435F751438F1468",
            "ItemType": "Feet",
            "creatorStyleItemName": "trainers",
            "creatorStyleItemImages": [
                {
                    "imageUrl": "https://images./203112454-1-brown?$XXL$",
                    "imageCategory": "thumbnail"
                }
            ]
        }
    ],
    "creatorStyleMainColours": [
        {
            "mainColour": "black",
            "colourPairings": [
                "beige",
                "grey",
                "white"
            ]
        },
        {
            "mainColour": "beige",
            "colourPairings": [
                "black",
                "grey",
                "white"
            ]
        },
        {
            "mainColour": "white",
            "colourPairings": [
                "beige",
                "grey",
                "black"
            ]
        }
    ],
    "creatorStyleMerchantGroup": "test1",
    "creatorStyleName": "",
    "creatorStyleProfiles": [
        {
            "id": "",
            "profileAccountId": "test1",
            "profileId": "test1",
            "profileIsDefault": false,
            "profileName": "classic",
            "profileBiometric": {
                "biometricName": "",
                "biometricGender": "Female",
                "biometricHeight": [
               
                ],
                "biometricAgeRange": [
           
                ],
                "biometricHairColour": [
               
                ],
                "biometricSkinColour": [
                
                ],
                "biometricBodyShape": [
            
                ],
                "biometricMeasurement": {
          
                }
            },
            "profilePersona": {
                "personaName": "",
                "personaDressSense": [
    
                ],
                "personaInterests": [
                 
                ],
                "personaStyleIcons": [
                    
                ],
                "personaColours": [

                ]
            }
        }
    ],
    "creatorStyleStatus": {
        "styleStatusId": "nonpublished",
        "styleStatusDescription": ""
    },
    "id": "classicStyle1",
    "_rid": "IW43AJ08x+8BAAAAAAAAAA==",
    "_self": "dbs/IW43AA==/colls/IW43AJ08x+8=/docs/IW43AJ08x+8BAAAAAAAAAA==/",
    "_etag": "\"97005ae1-0000-1500-0000-638523be0000\"",
    "_attachments": "attachments/",
    "_ts": 1669669822
}

正确查询语句

要得到目标简单数组,需使用SELECT VALUE直接返回mainColour的数值,且注意从JOIN的t对象中取值(t是creatorStyleMainColours数组中的每个元素),正确语句如下:

SELECT VALUE t.mainColour
FROM c
JOIN t IN c.creatorStyleMainColours
WHERE c.creatorDefaultStyleProfile = "test"

该查询会返回:

["black","beige","white"]

内容的提问来源于stack exchange,提问作者JoRo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 11:05:22