ObjectToArray (NoSQL sorgusu)
UYGULANANLAR: NoSQL
Bir JSON nesnesindeki her alan/değer çiftini bir öğeye dönüştürür ve sonra öğe kümesini JSON dizisi olarak döndürür. Varsayılan olarak, dizi öğeleri özgün alanın adı için yeni k
bir alan ve özgün alanın değeri için yeni v
bir alan içerir. Bu yeni alan adları daha fazla özelleştirilebilir.
Söz dizimi
ObjectToArray(<object_expr> [, <string_expr_1>, <string_expr_2>])
Bağımsız değişkenler
Açıklama | |
---|---|
object_expr |
Alan/değer çiftlerinde özellikleri olan bir nesne ifadesi. |
string_expr_1 (İsteğe bağlı) |
Özgün alan/değer çiftinin alan bölümünü temsil eden alan adına sahip bir dize ifadesi. |
string_expr_2 (İsteğe bağlı) |
Özgün alan/değer çiftinin değer bölümünü temsil eden alan adına sahip bir dize ifadesi. |
Dönüş türleri
ve v
veya özel adlandırılmış alanlar olmak üzere k
iki alanı olan bir öğe dizisi.
Örnekler
Bu örnek, varsayılan k
ve v
tanımlayıcıları kullanarak statik bir nesneyi alan/değer çiftleri dizisine dönüştürmeyi gösterir.
SELECT VALUE
ObjectToArray({
"a": "12345",
"b": "67890"
})
[
[
{
"k": "a",
"v": "12345"
},
{
"k": "b",
"v": "67890"
}
]
]
Bu örnekte, alan adı tanımlayıcıyı name
kullanacak şekilde güncelleştirilir.
SELECT VALUE
ObjectToArray({
"a": "12345",
"b": "67890"
}, "name")
[
[
{
"name": "a",
"v": "12345"
},
{
"name": "b",
"v": "67890"
}
]
]
Bu örnekte, değer adı tanımlayıcıyı value
kullanacak şekilde güncelleştirilir ve alan adı tanımlayıcıyı key
kullanır.
SELECT VALUE
ObjectToArray({
"a": "12345",
"b": "67890"
}, "key", "value")
[
[
{
"key": "a",
"value": "12345"
},
{
"key": "b",
"value": "67890"
}
]
]
Bu son örnek, bir JSON nesnesi içindeki alanları kullanarak verileri depolayan mevcut bir kapsayıcı içindeki bir öğeyi kullanır.
[
{
"name": "Witalica helmet",
"category": "sport-helmets",
"quantities": {
"small": 15,
"medium": 24,
"large": 2,
"xlarge": 0
}
}
]
Bu örnekte işlevi, nesneyi her alan/değer çifti için bir dizi öğesine bölmek için kullanılır.
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
}
]
}
]
Açıklamalar
- Giriş değeri geçerli bir nesne değilse sonuç olur
undefined
.