如何在此 CosmosDB 查询中获取值 属性?
How do I get the value property in this CosmosDB QUery?
我试图更深入地了解一个对象,但由于某种原因它在我的 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"
}
]
我的问题是我想 return "value" 属性 "jongel fibbel" 而不是整个描述对象
我试着改变
c.BasicData.presentation.articleLongDescription[0] AS Description,
到
c.BasicData.presentation.articleLongDescription[0].value AS Description,
但这给了我一个语法错误值
我怎样才能 return 上述查询中的正确值?
编辑 ------
aricleLongDescription is an array as follows
"articleLongDescription": [
{
"locale": "en-GB",
"value": "jongel fibbel"
}
],
所以我也尝试了 JOIN 如下
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'
但它也因值的语法错误而失败,我想知道 "value" 是受保护的关键字还是 CosmosDB 中的某些内容?
事实证明 value 是 CosmosDB 中的保留关键字,因此绕过它的语法如下
c.BasicData.presentation.articleLongDescription[0]["value"] AS Description,
注意没有.(点)只有括号和双引号
我试图更深入地了解一个对象,但由于某种原因它在我的 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"
}
]
我的问题是我想 return "value" 属性 "jongel fibbel" 而不是整个描述对象
我试着改变
c.BasicData.presentation.articleLongDescription[0] AS Description,
到
c.BasicData.presentation.articleLongDescription[0].value AS Description,
但这给了我一个语法错误值
我怎样才能 return 上述查询中的正确值?
编辑 ------
aricleLongDescription is an array as follows
"articleLongDescription": [
{
"locale": "en-GB",
"value": "jongel fibbel"
}
],
所以我也尝试了 JOIN 如下
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'
但它也因值的语法错误而失败,我想知道 "value" 是受保护的关键字还是 CosmosDB 中的某些内容?
事实证明 value 是 CosmosDB 中的保留关键字,因此绕过它的语法如下
c.BasicData.presentation.articleLongDescription[0]["value"] AS Description,
注意没有.(点)只有括号和双引号