ObjectToArray (NoSQL 查詢)
適用於:NoSQL
將 JSON 物件中的每個欄位/值組轉換成 專案,然後將專案集當做 JSON 陣列傳回。 根據預設,陣列元素會包含原始功能變數名稱的新 k
欄位,以及原始欄位值的新 v
欄位。 您可以進一步自定義這些新的功能變數名稱。
語法
ObjectToArray(<object_expr> [, <string_expr_1>, <string_expr_2>])
引數
描述 | |
---|---|
object_expr |
具有欄位/值組屬性的物件表達式。 |
string_expr_1 (選擇性) |
字串表達式,其名稱為代表 原始欄位/值組的欄位 部分。 |
string_expr_2 (選擇性) |
字串表示式,其名稱為代表 原始欄位/值組的值 部分。 |
傳回類型
具有兩個字段或v
自定義命名字段k
的項目陣列。
範例
這個範例示範如何使用預設值 k
和 v
標識符,將靜態對象轉換成域/值組的陣列。
SELECT VALUE
ObjectToArray({
"a": "12345",
"b": "67890"
})
[
[
{
"k": "a",
"v": "12345"
},
{
"k": "b",
"v": "67890"
}
]
]
在此範例中,功能變數名稱會更新為使用 name
標識符。
SELECT VALUE
ObjectToArray({
"a": "12345",
"b": "67890"
}, "name")
[
[
{
"name": "a",
"v": "12345"
},
{
"name": "b",
"v": "67890"
}
]
]
在此範例中,值名稱會更新為使用 value
標識符,而功能變數名稱會使用 key
標識碼。
SELECT VALUE
ObjectToArray({
"a": "12345",
"b": "67890"
}, "key", "value")
[
[
{
"key": "a",
"value": "12345"
},
{
"key": "b",
"value": "67890"
}
]
]
這個最後一個範例會使用現有容器內的專案,以使用 JSON 物件內的欄位來儲存數據。
[
{
"name": "Witalica helmet",
"category": "sport-helmets",
"quantities": {
"small": 15,
"medium": 24,
"large": 2,
"xlarge": 0
}
}
]
在此範例中,函式用來將物件分成每個欄位/值組的陣列專案。
SELECT
p.name,
ObjectToArray(p.quantities, "size", "quantity") AS quantitiesBySize
FROM
products p
WHERE
p.category = "sport-helmets"
[
{
"name": "Witalica helmet",
"quantitiesBySize": [
{
"size": "small",
"quantity": 15
},
{
"size": "medium",
"quantity": 24
},
{
"size": "large",
"quantity": 2
},
{
"size": "xlarge",
"quantity": 0
}
]
}
]
備註
- 如果輸入值不是有效的物件,則結果為
undefined
。