Delen via


ObjectToArray (NoSQL-query)

VAN TOEPASSING OP: NoSQL

Converteert elk veld/waardepaar in een JSON-object naar een element en retourneert vervolgens de set elementen als een JSON-matrix. De matrixelementen bevatten standaard een nieuw k veld voor de naam van het oorspronkelijke veld en een nieuw v veld voor de waarde van het oorspronkelijke veld. Deze nieuwe veldnamen kunnen verder worden aangepast.

Syntaxis

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

Argumenten

Beschrijving
object_expr Een objectexpressie met eigenschappen in veld-/waardeparen.
string_expr_1(Optioneel) Een tekenreeksexpressie met een naam voor het veld dat het veldgedeelte van het oorspronkelijke veld/waardepaar vertegenwoordigt.
string_expr_2(Optioneel) Een tekenreeksexpressie met een naam voor het veld dat het waardegedeelte van het oorspronkelijke veld/waardepaar vertegenwoordigt.

Retourtypen

Een matrix met elementen met twee velden, k of v velden met een aangepaste naam.

Voorbeelden

In dit voorbeeld ziet u hoe u een statisch object converteert naar een matrix van veld-/waardeparen met behulp van de standaard k - en v id's.

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

In dit voorbeeld wordt de veldnaam bijgewerkt om de name id te gebruiken.

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

In dit voorbeeld wordt de waardenaam bijgewerkt om de value id te gebruiken en de veldnaam gebruikt de key id.

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

In dit laatste voorbeeld wordt een item in een bestaande container gebruikt waarin gegevens worden opgeslagen met behulp van velden in een JSON-object.

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

In dit voorbeeld wordt de functie gebruikt om het object op te splitsen in een matrixitem voor elk veld/waardepaar.

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

Opmerkingen

  • Als de invoerwaarde geen geldig object is, is undefinedhet resultaat .

Zie ook