C# 如何在这个CosmosDB查询中获取value属性?

C# 如何在这个CosmosDB查询中获取value属性?,c#,azure-cosmosdb,azure-cosmosdb-sqlapi,C#,Azure Cosmosdb,Azure Cosmosdb Sqlapi,我试图深入了解一个对象,但由于某些原因,它在我的Cosmos查询中不起作用,查询非常简单,如下所示 SELECT c.id, c.ItemNo, bv.variantId AS variantNo, bv.variantDescription AS title, c.BasicData.presentation.articleLongDescription[0] AS Description, c.BasicData.presentation.articleCompositionLis

我试图深入了解一个对象,但由于某些原因,它在我的Cosmos查询中不起作用,查询非常简单,如下所示

SELECT c.id,  
c.ItemNo, 
bv.variantId AS variantNo, 
bv.variantDescription AS title, 
c.BasicData.presentation.articleLongDescription[0] AS Description,
c.BasicData.presentation.articleCompositionList.origin,
bv.size.sizeName,
c.BasicData.asset.assets[0].locations[1].path
FROM c
JOIN bv IN c.BasicData.base.sales.variants
WHERE c.brand = 'XXX'
AND c.Consumer = 'XXX'
AND bv.variantId = 'XXX'
AND c.Season = 'XXX'
结果也相当直截了当,如下所示

[
    {
        "id": "9c9c5b56-999f-4f98-8c52-902f43dd4cfe",
        "ItemNo": "0562168014",
        "variantNo": "0562168014003",
        "title": "Trousers Grey, 36",
        "Description": {
            "locale": "en-GB",
            "value": "jongel fibbel"
        },
        "origin": "{\"\":{\"materials\":{\"002elastane\":\"30.0\",\"002polyester\":\"70.0\"}}}",
        "path": "https://public.assets.XXX.com/assets/002/b0/1b/b01b4fa77023f48ca3c6ff8777cc27276f478f1e.jpg"
    }
]
SELECT c.id,  
c.ItemNo, 
bv.variantId AS variantNo, 
bv.variantDescription AS title, 
ba.value AS Description,
c.BasicData.presentation.articleCompositionList.origin,
bv.size.sizeName,
c.BasicData.asset.assets[0].locations[1].path
FROM c
JOIN bv IN c.BasicData.base.sales.variants
JOIN ba IN c.BasicData.presentation.articleLongDescription
WHERE c.brand = 'XXX'
AND c.Consumer = 'XXX'
AND bv.variantId = 'XXX'
AND c.Season = 'XXXX'
SELECT c.id,  
c.ItemNo, 
bv.variantId AS variantNo, 
bv.variantDescription AS title, 
--c.BasicData.presentation.articleLongDescription[0] AS Description,
-- ARRAY(SELECT serving.description FROM serving IN food.servings) AS servings
ARRAY(SELECT jongel.value FROM jongel IN c.BasicData.presentation.articleLongDescription) AS Description

c.BasicData.presentation.articleCompositionList.origin,
bv.size.sizeName,
c.BasicData.asset.assets[0].locations[1].path
FROM c
JOIN bv IN c.BasicData.base.sales.variants
JOIN ba IN c.BasicData.presentation.articleLongDescription
WHERE c.brand = 'XXX'
AND c.Consumer = 'XXX'
AND bv.variantId = 'XXX'
AND c.Season = 'XXX'
c.BasicData.presentation.articleLongDescription[0]["value"] AS Description,
我的问题是我想返回“value”属性“jongel fibbel”,而不是整个description对象

我试着换衣服

c.BasicData.presentation.articleLongDescription[0] AS Description,

但这给了我一个语法错误

如何在上述查询中正确返回值

编辑-------

所以我也试着加入如下

[
    {
        "id": "9c9c5b56-999f-4f98-8c52-902f43dd4cfe",
        "ItemNo": "0562168014",
        "variantNo": "0562168014003",
        "title": "Trousers Grey, 36",
        "Description": {
            "locale": "en-GB",
            "value": "jongel fibbel"
        },
        "origin": "{\"\":{\"materials\":{\"002elastane\":\"30.0\",\"002polyester\":\"70.0\"}}}",
        "path": "https://public.assets.XXX.com/assets/002/b0/1b/b01b4fa77023f48ca3c6ff8777cc27276f478f1e.jpg"
    }
]
SELECT c.id,  
c.ItemNo, 
bv.variantId AS variantNo, 
bv.variantDescription AS title, 
ba.value AS Description,
c.BasicData.presentation.articleCompositionList.origin,
bv.size.sizeName,
c.BasicData.asset.assets[0].locations[1].path
FROM c
JOIN bv IN c.BasicData.base.sales.variants
JOIN ba IN c.BasicData.presentation.articleLongDescription
WHERE c.brand = 'XXX'
AND c.Consumer = 'XXX'
AND bv.variantId = 'XXX'
AND c.Season = 'XXXX'
SELECT c.id,  
c.ItemNo, 
bv.variantId AS variantNo, 
bv.variantDescription AS title, 
--c.BasicData.presentation.articleLongDescription[0] AS Description,
-- ARRAY(SELECT serving.description FROM serving IN food.servings) AS servings
ARRAY(SELECT jongel.value FROM jongel IN c.BasicData.presentation.articleLongDescription) AS Description

c.BasicData.presentation.articleCompositionList.origin,
bv.size.sizeName,
c.BasicData.asset.assets[0].locations[1].path
FROM c
JOIN bv IN c.BasicData.base.sales.variants
JOIN ba IN c.BasicData.presentation.articleLongDescription
WHERE c.brand = 'XXX'
AND c.Consumer = 'XXX'
AND bv.variantId = 'XXX'
AND c.Season = 'XXX'
c.BasicData.presentation.articleLongDescription[0]["value"] AS Description,
但它也会因值处的语法错误而失败

编辑---

还尝试了如下子查询

[
    {
        "id": "9c9c5b56-999f-4f98-8c52-902f43dd4cfe",
        "ItemNo": "0562168014",
        "variantNo": "0562168014003",
        "title": "Trousers Grey, 36",
        "Description": {
            "locale": "en-GB",
            "value": "jongel fibbel"
        },
        "origin": "{\"\":{\"materials\":{\"002elastane\":\"30.0\",\"002polyester\":\"70.0\"}}}",
        "path": "https://public.assets.XXX.com/assets/002/b0/1b/b01b4fa77023f48ca3c6ff8777cc27276f478f1e.jpg"
    }
]
SELECT c.id,  
c.ItemNo, 
bv.variantId AS variantNo, 
bv.variantDescription AS title, 
ba.value AS Description,
c.BasicData.presentation.articleCompositionList.origin,
bv.size.sizeName,
c.BasicData.asset.assets[0].locations[1].path
FROM c
JOIN bv IN c.BasicData.base.sales.variants
JOIN ba IN c.BasicData.presentation.articleLongDescription
WHERE c.brand = 'XXX'
AND c.Consumer = 'XXX'
AND bv.variantId = 'XXX'
AND c.Season = 'XXXX'
SELECT c.id,  
c.ItemNo, 
bv.variantId AS variantNo, 
bv.variantDescription AS title, 
--c.BasicData.presentation.articleLongDescription[0] AS Description,
-- ARRAY(SELECT serving.description FROM serving IN food.servings) AS servings
ARRAY(SELECT jongel.value FROM jongel IN c.BasicData.presentation.articleLongDescription) AS Description

c.BasicData.presentation.articleCompositionList.origin,
bv.size.sizeName,
c.BasicData.asset.assets[0].locations[1].path
FROM c
JOIN bv IN c.BasicData.base.sales.variants
JOIN ba IN c.BasicData.presentation.articleLongDescription
WHERE c.brand = 'XXX'
AND c.Consumer = 'XXX'
AND bv.variantId = 'XXX'
AND c.Season = 'XXX'
c.BasicData.presentation.articleLongDescription[0]["value"] AS Description,

但是它也失败了,因为value的语法错误,我想知道“value”是受保护的关键字还是CosmosDB中的某个东西?

因为事实证明value是CosmosDB中的保留关键字,所以绕过它的语法如下

[
    {
        "id": "9c9c5b56-999f-4f98-8c52-902f43dd4cfe",
        "ItemNo": "0562168014",
        "variantNo": "0562168014003",
        "title": "Trousers Grey, 36",
        "Description": {
            "locale": "en-GB",
            "value": "jongel fibbel"
        },
        "origin": "{\"\":{\"materials\":{\"002elastane\":\"30.0\",\"002polyester\":\"70.0\"}}}",
        "path": "https://public.assets.XXX.com/assets/002/b0/1b/b01b4fa77023f48ca3c6ff8777cc27276f478f1e.jpg"
    }
]
SELECT c.id,  
c.ItemNo, 
bv.variantId AS variantNo, 
bv.variantDescription AS title, 
ba.value AS Description,
c.BasicData.presentation.articleCompositionList.origin,
bv.size.sizeName,
c.BasicData.asset.assets[0].locations[1].path
FROM c
JOIN bv IN c.BasicData.base.sales.variants
JOIN ba IN c.BasicData.presentation.articleLongDescription
WHERE c.brand = 'XXX'
AND c.Consumer = 'XXX'
AND bv.variantId = 'XXX'
AND c.Season = 'XXXX'
SELECT c.id,  
c.ItemNo, 
bv.variantId AS variantNo, 
bv.variantDescription AS title, 
--c.BasicData.presentation.articleLongDescription[0] AS Description,
-- ARRAY(SELECT serving.description FROM serving IN food.servings) AS servings
ARRAY(SELECT jongel.value FROM jongel IN c.BasicData.presentation.articleLongDescription) AS Description

c.BasicData.presentation.articleCompositionList.origin,
bv.size.sizeName,
c.BasicData.asset.assets[0].locations[1].path
FROM c
JOIN bv IN c.BasicData.base.sales.variants
JOIN ba IN c.BasicData.presentation.articleLongDescription
WHERE c.brand = 'XXX'
AND c.Consumer = 'XXX'
AND bv.variantId = 'XXX'
AND c.Season = 'XXX'
c.BasicData.presentation.articleLongDescription[0]["value"] AS Description,
注意这里没有(点),只有括号和双引号