Share via


ObjectToArray (NoSQL sorgusu)

ŞUNUN IÇIN GEÇERLIDIR: NoSQL

Bir JSON nesnesindeki her alan/değer çiftini bir öğeye dönüştürür ve ardından öğ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ı olan iki alan k içeren bir öğe dizisi.

Örnekler

Bu örnekte, varsayılan k ve v tanımlayıcıları kullanarak statik bir nesnenin alan/değer çiftleri dizisine dönüştürülmesi gösterilmektedir.

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.

Ayrıca bkz.