Udostępnij za pośrednictwem


ObjectToArray (zapytanie NoSQL)

DOTYCZY: NoSQL

Konwertuje każdą parę pól/wartości w obiekcie JSON na element, a następnie zwraca zestaw elementów jako tablicę JSON. Domyślnie elementy tablicy zawierają nowe k pole dla nazwy oryginalnego pola i nowe v pole wartości pola oryginalnego. Te nowe nazwy pól można dodatkowo dostosować.

Składnia

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

Argumenty

opis
object_expr Wyrażenie obiektu z właściwościami w parach pól/wartości.
string_expr_1(Opcjonalnie) Wyrażenie ciągu o nazwie pola reprezentującego część pola oryginalnej pary pól/wartości.
string_expr_2(Opcjonalnie) Wyrażenie ciągu o nazwie pola reprezentującego część wartości oryginalnej pary pól/wartości.

Typy zwracane

Tablica elementów z dwoma polami lub k v polami nazwanymi niestandardowymi.

Przykłady

W tym przykładzie pokazano konwertowanie obiektu statycznego na tablicę par pól/wartości przy użyciu wartości domyślnych k i v identyfikatorów.

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

W tym przykładzie nazwa pola jest aktualizowana w celu użycia identyfikatora name .

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

W tym przykładzie nazwa wartości jest aktualizowana w celu użycia identyfikatora value , a nazwa pola używa identyfikatora key .

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

W tym ostatnim przykładzie użyto elementu w istniejącym kontenerze, który przechowuje dane przy użyciu pól w obiekcie JSON.

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

W tym przykładzie funkcja jest używana do podziału obiektu na element tablicy dla każdej pary pól/wartości.

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

Uwagi

  • Jeśli wartość wejściowa nie jest prawidłowym obiektem, wynik to undefined.

Zobacz też