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 つのフィールド (kv、またはユーザー設定の名前付きフィールド) を持つ要素の配列。

この例では、既定の 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 になります。

関連項目