簡體   English   中英

如何在此 CosmosDB 查詢中獲取 value 屬性?

[英]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"
    }
]

我的問題是我想返回“值”屬性“jongel fibbel”而不是整個描述對象

我試着改變

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

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

但這給了我一個語法錯誤的價值

如何在上述查詢中正確返回值?

編輯 - - - -

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 的語法錯誤而失敗,我想知道“value”是受保護的關鍵字還是 CosmosDB 中的某個東西?

事實證明 value 是 CosmosDB 中的保留關鍵字,因此繞過它的語法如下

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

注意沒有 .(dot) 只是括號和雙引號

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM