ObjectToArray (NoSQL クエリ)
適用対象: NoSQL
JSON オブジェクト内のそれぞれのフィールド/値ペアを要素に変換し、要素のセットを JSON 配列として返します。 既定では、配列要素として元のフィールドの名前の新しい k
フィールドと、元のフィールドの値の新しい v
フィールドがあります。 これらの新しいフィールド名をさらにカスタマイズできます。
構文
ObjectToArray(<object_expr> [, <string_expr_1>, <string_expr_2>])
引数
説明 | |
---|---|
object_expr |
フィールド/値のペアのプロパティを持つオブジェクト式。 |
string_expr_1 "(省略可能)" |
元のフィールド/値ペアの "フィールド" 部分を表す、フィールドの名前を持つ文字列式。 |
string_expr_2 "(省略可能)" |
元のフィールド/値ペアの "値" 部分を表す、フィールドの名前を持つ文字列式。 |
戻り値の型
2 つのフィールド (k
と v
、またはユーザー設定の名前付きフィールド) を持つ要素の配列。
例
この例では、既定の 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
になります。