Freigeben über


SetUnion (NoSQL-Abfrage)

GILT FÜR: NoSQL

Erfasst Ausdrücke in zwei Mengen und gibt eine Menge von Ausdrücken zurück, die alle Ausdrücke in beiden Mengen ohne Duplikate enthält.

Syntax

SetUnion(<array_expr_1>, <array_expr_2>)

Argumente

BESCHREIBUNG
array_expr_1 Ein Array von Ausdrücken.
array_expr_2 Ein Array von Ausdrücken.

Rückgabetypen

Gibt ein Array von Ausdrücken zurück.

Beispiele

In diesem ersten Beispiel wird die Funktion mit statischen Arrays verwendet, um die Vereinigungsfunktionalität zu veranschaulichen.

SELECT VALUE {
    simpleUnion: SetUnion([1, 2, 3, 4], [3, 4, 5, 6]),
    emptyUnion: SetUnion([1, 2, 3, 4], []),
    duplicatesUnion: SetUnion([1, 2, 3, 4], [1, 1, 1, 1]),
    unorderedUnion: SetUnion([1, 2, "A", "B"], ["A", 1])
}
[
  {
    "simpleUnion": [1, 2, 3, 4, 5, 6],
    "emptyUnion": [1,2,3,4],
    "duplicatesUnion": [1,2,3,4],
    "unorderedUnion": [1,2,"A","B"]
  }
]

Im letzten Beispiel wird ein Element verwendet, das Werte innerhalb von mehreren Arrayeigenschaften freigibt.

[
  {
    "name": "Malsca coat",
    "category": "seasonal-coats",
    "colors": [
      {
        "season": "Winter",
        "values": [
          "Cutty Sark",
          "Horizon",
          "Russet",
          "Fuscous"
        ]
      },
      {
        "season": "Summer",
        "values": [
          "Fuscous",
          "Horizon",
          "Tacha"
        ]
      }
    ]
  }
]

Die Abfrage gibt die Vereinigung der beiden Arrays als neue Eigenschaft zurück.

SELECT
    p.name,    
    SetUnion(p.colors[0].values, p.colors[1].values) AS allColors
FROM
    products p
WHERE
    p.category = "seasonal-coats"
[
  {
    "name": "Malsca coat",
    "allColors": [
      "Cutty Sark",
      "Horizon",
      "Russet",
      "Fuscous",
      "Tacha"
    ]
  }
]

Bemerkungen

  • Diese Funktion gibt keine Duplikate zurück.
  • Der Index wird von dieser Funktion nicht verwendet.

Weitere Informationen