Cláusula WHERE (consulta NoSQL)

SE APLICA A: NoSQL

La cláusula WHERE opcional (WHERE <filter_condition>) especifica las condiciones que deben cumplir los elementos JSON de origen para que la consulta los incluya en los resultados. Un elemento JSON debe evaluar que las condiciones especificadas sean true para que se le tenga en cuenta para el resultado. La capa de índice usa la cláusula WHERE para determinar el subconjunto menor de elementos de origen que puede formar parte del resultado.

Sintaxis

WHERE <filter_condition>  
<filter_condition> ::= <scalar_expression>
Descripción
<filter_condition> Especifica la condición que deberá cumplirse para que se devuelvan los elementos.
<scalar_expression> Expresión que representa el valor que hay que calcular.

Nota:

Para obtener más información sobre las expresiones escalares, consulte expresiones escalares

Ejemplos

En este primer ejemplo, se usa una consulta de igualdad simple para devolver un subconjunto de elementos. El operador = se usa con la cláusula WHERE para crear un filtro basado en la igualdad simple.

SELECT VALUE {
    employeeName: e.name,
    currentTeam: e.team
}
FROM
    employees e
WHERE
    e.team = "Hospitality"
[
  {
    "employeeName": "Jordan Mitchell",
    "currentTeam": "Hospitality"
  },
  {
    "employeeName": "Ashley Schroeder",
    "currentTeam": "Hospitality"
  },
  {
    "employeeName": "Tomas Richardson",
    "currentTeam": "Hospitality"
  }
]

En el ejemplo siguiente, un filtro más complejo se compone de expresiones escalares.

SELECT VALUE {
    employeeName: e.name,
    vacationDaysRemaining: e.vacationDays
}
FROM
    employees e
WHERE
    e.vacationDays >= 7
[
  {
    "employeeName": "Ana Bowman",
    "vacationDaysRemaining": 10
  },
  {
    "employeeName": "Madison Butler",
    "vacationDaysRemaining": 7
  }
]

En el ejemplo final, se usa una referencia de propiedad a una propiedad booleana como filtro.

SELECT VALUE {
    employeeName: e.name,
    isPartTime: e.partTime
}
FROM
    employees e
WHERE
    e.partTime
[
  {
    "employeeName": "Riley Ramirez",
    "isPartTime": true
  },
  {
    "employeeName": "Caleb Foster",
    "isPartTime": true
  }
]

Observaciones

  • Para que se devuelva un elemento, deberá establecerse en true una expresión especificada como condición de filtro. Solo el valor booleano true satisface la condición, cualquier otro valor: undefined, null, false, un número escalar, una matriz o un objeto no cumplen la condición.

  • Si incluye la clave de partición en la cláusula WHERE como parte de un filtro de igualdad, la consulta se filtra automáticamente para solo las particiones pertinentes.

  • Puede usar los operadores binarios admitidos siguientes:

    Operadores Ejemplos
    Aritméticos +,-,,*,/%
    Bit a bit \|, &, ^, <<, , >>, >>>(desplazamiento derecho de relleno cero)
    lógicos AND, , OR, NOT
    De comparación =, !=, <, >, <=, , >=<>
    String \|\|(concatenar)