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 dikembalikan
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 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
.