共用方式為


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的項目陣列。

範例

這個範例示範如何使用預設值 kv 標識符,將靜態對象轉換成域/值組的陣列。

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

另請參閱