Dela via


ObjectToArray (NoSQL-fråga)

GÄLLER FÖR: NoSQL

Konverterar varje fält/värde-par i ett JSON-objekt till ett element och returnerar sedan uppsättningen element som en JSON-matris. Som standard innehåller matriselementen ett nytt k fält för det ursprungliga fältets namn och ett nytt v fält för det ursprungliga fältets värde. Dessa nya fältnamn kan anpassas ytterligare.

Syntax

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

Argument

beskrivning
object_expr Ett objektuttryck med egenskaper i fält/värde-par.
string_expr_1(Valfritt) Ett stränguttryck med ett namn för fältet som representerar fältdelen av det ursprungliga fältet/värdeparet.
string_expr_2(Valfritt) Ett stränguttryck med ett namn för fältet som representerar värdedelen i det ursprungliga fältet/värdeparet.

Returtyper

En matris med element med två fält, antingen k och v eller anpassade namngivna fält.

Exempel

Det här exemplet visar hur du konverterar ett statiskt objekt till en matris med fält/värde-par med standard k - och v identifierare.

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

I det här exemplet uppdateras fältnamnet för att använda identifieraren name .

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

I det här exemplet uppdateras värdenamnet för att använda identifieraren value och fältnamnet använder identifieraren key .

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

Det här sista exemplet använder ett objekt i en befintlig container som lagrar data med hjälp av fält i ett JSON-objekt.

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

I det här exemplet används funktionen för att dela upp objektet i ett matrisobjekt för varje fält/värde-par.

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

Kommentarer

  • Om indatavärdet inte är ett giltigt objekt blir undefinedresultatet .

Se även