ObjectToArray (kueri NoSQL)

BERLAKU UNTUK: NoSQL

Mengonversi setiap pasangan bidang/nilai dalam objek JSON menjadi elemen lalu mengembalikan kumpulan elemen sebagai array JSON. Secara default, elemen array berisi bidang baru k untuk nama bidang asli dan bidang baru v untuk nilai bidang asli. Nama bidang baru ini dapat disesuaikan lebih lanjut.

Sintaks

ObjectToArray(<object_expr> [, <string_expr_1>, <string_expr_2>])

Argumen

Deskripsi
object_expr Ekspresi objek dengan properti dalam pasangan bidang/nilai.
string_expr_1(Opsional) Ekspresi string dengan nama untuk bidang yang mewakili bagian bidang dari pasangan bidang/nilai asli.
string_expr_2(Opsional) Ekspresi string dengan nama untuk bidang yang mewakili bagian nilai dari pasangan bidang/nilai asli.

Jenis yang ditampilkan

Array elemen dengan dua bidang, baik k dan v atau bidang bernama kustom.

Contoh

Contoh ini menunjukkan konversi objek statis ke array pasangan bidang/nilai menggunakan default k dan v pengidentifikasi.

SELECT VALUE
    ObjectToArray({ 
        "a": "12345", 
        "b": "67890"
    })
[
  [
    {
      "k": "a",
      "v": "12345"
    },
    {
      "k": "b",
      "v": "67890"
    }
  ]
]

Dalam contoh ini, nama bidang diperbarui untuk menggunakan name pengidentifikasi.

SELECT VALUE
    ObjectToArray({ 
        "a": "12345", 
        "b": "67890"
    }, "name")
[
  [
    {
      "name": "a",
      "v": "12345"
    },
    {
      "name": "b",
      "v": "67890"
    }
  ]
]

Dalam contoh ini, nama nilai diperbarui untuk menggunakan value pengidentifikasi dan nama bidang menggunakan key pengidentifikasi.

SELECT VALUE
    ObjectToArray({ 
        "a": "12345", 
        "b": "67890"
    }, "key", "value")
[
  [
    {
      "key": "a",
      "value": "12345"
    },
    {
      "key": "b",
      "value": "67890"
    }
  ]
]

Contoh akhir ini menggunakan item dalam kontainer yang sudah ada yang menyimpan data menggunakan bidang dalam objek JSON.

[
  {
    "name": "Witalica helmet",
    "category": "sport-helmets",
    "quantities": {
      "small": 15,
      "medium": 24,
      "large": 2,
      "xlarge": 0
    }
  }
]

Dalam contoh ini, fungsi digunakan untuk memecah objek menjadi item array untuk setiap pasangan bidang/nilai.

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
      }
    ]
  }
]

Keterangan

  • Jika nilai input bukan objek yang valid, hasilnya adalah undefined.

Lihat juga