Comparteix a través de


SetUnion (consulta NoSQL)

SE APLICA A: NoSQL

Recopila expresiones en dos conjuntos y devuelve un conjunto de expresiones que contienen todas las expresiones de ambos conjuntos sin duplicados.

Sintaxis

SetUnion(<array_expr_1>, <array_expr_2>)

Argumentos

Descripción
array_expr_1 Una matriz de expresiones.
array_expr_2 Una matriz de expresiones.

Tipos de valores devueltos

Devuelve una matriz de expresiones.

Ejemplos

En este primer ejemplo se usa la función con matrices estáticas para mostrar la funcionalidad de unión.

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

En este último ejemplo se usa un elemento que comparte valores dentro de varias propiedades de matriz.

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

La consulta devuelve la unión de las dos matrices como una nueva propiedad.

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

Comentarios

  • Esta función no devuelve duplicados.
  • Esta función no emplea el índice.

Consulte también