Sdílet prostřednictvím


ObjectToArray (dotaz NoSQL)

PLATÍ PRO: NoSQL

Převede každou dvojici polí a hodnot v objektu JSON na prvek a pak vrátí sadu prvků jako pole JSON. Ve výchozím nastavení prvky pole obsahují nové k pole pro název původního pole a nové v pole pro hodnotu původního pole. Tyto nové názvy polí je možné dále přizpůsobit.

Syntaxe

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

Argumenty

Popis
object_expr Výraz objektu s vlastnostmi v párech polí a hodnot.
string_expr_1(Volitelné) Řetězcový výraz s názvem pole představující část původní dvojice pole/hodnota.
string_expr_2(Volitelné) Řetězcový výraz s názvem pole představujícího část hodnoty původní dvojice pole/hodnoty.

Návratové typy

Pole prvků se dvěma poli, a to buď k a v nebo vlastními pojmenovanými poli.

Příklady

Tento příklad ukazuje převod statického objektu na pole párů polí a hodnot pomocí výchozích k a v identifikátorů.

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

V tomto příkladu se název pole aktualizuje tak, aby používal name identifikátor.

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

V tomto příkladu se název hodnoty aktualizuje tak, aby používal value identifikátor a název pole tento identifikátor používá key .

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

V posledním příkladu se používá položka v existujícím kontejneru, která ukládá data pomocí polí v objektu JSON.

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

V tomto příkladu se funkce používá k rozdělení objektu na maticovou položku pro každou dvojici polí a hodnot.

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

Poznámky

  • Pokud vstupní hodnota není platným objektem, výsledek je undefined.

Viz také