Comparteix a través de


SetIntersect (consulta NoSQL)

SE APLICA A: NoSQL

Compara expresiones en dos conjuntos y devuelve el conjunto de expresiones contenidas en ambos conjuntos sin duplicados.

Sintaxis

SetIntersect(<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 intersección.

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

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

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

La consulta selecciona el campo adecuado del elemento[s] del contenedor.

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

Comentarios

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

Consulte también