Freigeben über


SetIntersect (NoSQL-Abfrage)

GILT FÜR: NoSQL

Vergleicht Ausdrücke in zwei Mengen und gibt die Menge von Ausdrücken ohne Duplikate zurück, die in beiden Mengen enthalten sind.

Syntax

SetIntersect(<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 Schnittfunktionalität zu veranschaulichen.

SELECT VALUE {
    simpleIntersect: SetIntersect([1, 2, 3, 4], [3, 4, 5, 6]),
    emptyIntersect: SetIntersect([1, 2, 3, 4], []),
    duplicatesIntersect: SetIntersect([1, 2, 3, 4], [1, 1, 1, 1]),
    noMatchesIntersect: SetIntersect([1, 2, 3, 4], ["A", "B"]),
    unorderedIntersect: SetIntersect([1, 2, "A", "B"], ["A", 1])
}
[
  {
    "simpleIntersect": [
      3,
      4
    ],
    "emptyIntersect": [],
    "duplicatesIntersect": [
      1
    ],
    "noMatchesIntersect": [],
    "unorderedIntersect": [
      "A",
      1
    ]
  }
]

Im letzten Beispiel wird ein einzelnes Element verwendet, das Werte innerhalb von zwei Arrayeigenschaften teilt.

[
  {
    "name": "Snowilla vest",
    "inStockColors": [
      "Rhino",
      "Finch"
    ],
    "colors": [
      "Finch",
      "Mine Shaft",
      "Rhino"
    ],
    "category": "modern-vests"
  }
]

Die Abfrage wählt das entsprechende Feld aus den Elementen im Container aus.

SELECT
    p.name,
    SetIntersect(p.colors, p.inStockColors) AS availableColors
FROM
    products p
WHERE
    p.category = "modern-vests"
[
  {
    "name": "Snowilla vest",
    "availableColors": [
      "Rhino",
      "Finch"
    ]
  }
]

Bemerkungen

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

Weitere Informationen