Palabras clave en Azure Cosmos DB for NoSQL
SE APLICA A: NoSQL
El lenguaje de consulta de Azure Cosmos DB for NoSQL incluye un conjunto de palabras clave reservadas que se usan en consultas para la funcionalidad extendida.
BETWEEN
La palabra clave BETWEEN
se evalúa como un valor booleano que indica si el valor de destino está entre dos valores especificados, ambos incluidos.
Puede usar la BETWEEN
palabra clave con una WHERE
cláusula para expresar consultas que filtren los resultados contra rangos de valores de cadena o numéricos. Por ejemplo, la siguiente consulta devuelve todos los elementos cuyo precio esté comprendido entre 17.25
y 25.50
, ambos inclusive.
SELECT VALUE
p.price
FROM
products p
WHERE
p.price BETWEEN 17.25 AND 25.50
[
20
]
También puede usar la palabra clave BETWEEN
en la cláusula SELECT
, como en el ejemplo siguiente.
SELECT
(p.price BETWEEN 0 AND 10) AS booleanLessThanTen,
p.price
FROM
products p
[
{
"booleanLessThanTen": false,
"price": 20.0
},
{
"booleanLessThanTen": true,
"price": 7.5
}
]
Nota:
En la API para NoSQL, a diferencia de SQL ANSI, puede expresar consultas en intervalos en propiedades de tipos combinados. Por ejemplo, price
podría ser un número como 5.0
en algunos elementos y una cadena como fifteenDollars
en otros. En estos casos, como ocurre en JavaScript, la comparación entre los dos tipos diferentes da como resultado undefined
, por lo que el elemento es omitido.
DISTINCT
La palabra clave DISTINCT
elimina duplicados en los resultados de la consulta proyectada.
En este ejemplo, la consulta proyecta valores para cada categoría de producto. Si dos categorías son equivalentes, solo se devuelve una sola repetición en los resultados.
SELECT DISTINCT VALUE
p.category
FROM
products p
[
"Accessories",
"Tools"
]
También puede proyectar valores incluso si el campo de destino no existe. En este caso, el campo no existe en uno de los elementos, por lo que la consulta devuelve un objeto vacío para ese valor único específico.
SELECT DISTINCT
p.category
FROM
products p
Los resultados son:
[
{},
{
"category": "Accessories"
},
{
"category": "Tools"
}
]
LIKE
Devuelve un valor booleano en función de si una cadena de caracteres específica coincide con un patrón especificado. Un patrón puede contener caracteres normales y caracteres comodín.
Sugerencia
Puede escribir consultas equivalentes de forma lógica mediante la palabra clave LIKE
o la función del sistema RegexMatch
. Observará la misma utilización del índice independientemente de la opción que elija. La elección de una u otra opción dependerá en gran medida de las preferencias de sintaxis.
Nota:
Dado que LIKE
puede utilizar un índice, debe crear un índice de intervalo para las propiedades que se van a comparar con LIKE
.
Puede usar los siguientes caracteres comodín con LIKE:
Descripción | Ejemplo | |
---|---|---|
% |
Cualquier cadena de cero o más caracteres. | WHERE c.description LIKE "%SO%PS%" |
_ (subrayado) |
Cualquier carácter individual. | WHERE c.description LIKE"%SO_PS%" |
[ ] |
Cualquier carácter que se encuentre dentro del rango ([a-f] ) o conjunto ([abcdef] ). |
WHERE c.description LIKE "%SO[t-z]PS%" |
[^] |
Cualquier carácter que no esté dentro del rango ([^a-f] ) o conjunto ([^abcdef] ) especificados. |
WHERE c.description LIKE "%SO[^abc]PS%" |
El carácter %
coincide con cualquier cadena de cero o más caracteres. Por ejemplo, al colocar un %
al principio y al final del patrón, la consulta siguiente devuelve todos los elementos en los que el campo especificado contiene la frase como una substring:
SELECT VALUE
p.name
FROM
products p
WHERE
p.name LIKE "%driver%"
Si solo ha usado un carácter %
al principio del patrón, solo se devolverán los elementos con una descripción que empiece con fruit
:
SELECT VALUE
p.name
FROM
products p
WHERE
p.name LIKE "%glove"
Del mismo modo, el carácter comodín al principio del patrón indica que desea hacer coincidir los valores con el valor especificado como prefijo:
SELECT VALUE
p.name
FROM
products p
WHERE
p.name LIKE "Road%"
La palabra clave NOT
inversa el resultado de la evaluación de la expresión de la palabra clave LIKE
. En este ejemplo se devuelven todos los elementos que no coinciden con la expresión LIKE
.
SELECT VALUE
p.name
FROM
products p
WHERE
p.name NOT LIKE "%winter%"
Puede buscar patrones que incluyan uno o varios caracteres comodín mediante la cláusulaESCAPE
. Por ejemplo, si quiere buscar descripciones que contengan la cadena 20%
, no debe interpretar el valor %
como un carácter comodín. En este ejemplo se interpreta ^
como carácter de escape para que pueda escapar una instancia específica de %
.
SELECT VALUE
p.name
FROM
products p
WHERE
p.description LIKE "%20^%%" ESCAPE "^"
Puede incluir caracteres comodín entre corchetes para tratarlos como caracteres literales. Cuando se escribe un carácter comodín entre corchetes, se quitan los atributos especiales. En esta tabla se incluyen ejemplos de caracteres literales.
Valor analizado | |
---|---|
LIKE "20-30[%]" |
20-30% |
LIKE "[_]n" |
_n |
LIKE "[ [ ]" |
[ |
LIKE "]" |
] |
IN
Use la palabra clave IN
para comprobar si un valor especificado coincide con algún valor de una lista. Por ejemplo, la consulta siguiente devuelve todos los elementos en los que la categoría coincide al menos con uno de los valores de una lista.
SELECT
*
FROM
products p
WHERE
p.category IN ("Accessories", "Clothing")
Sugerencia
Si incluye la clave de partición en el filtro IN
, la consulta se filtrará automáticamente solo por las particiones pertinentes.
TOP
La palabra claveTOP
devuelve el primer númeroN
de resultados de la consulta en un orden indefinido. Como práctica recomendada, úsela TOP
con laORDER BY
cláusula para limitar los resultados al primer N
número de valores ordenados. La combinación de estas dos cláusulas es la única manera de indicar de forma previsible a qué filas TOP
afecta.
Puede usar TOP
con un valor constante, como se muestra en el siguiente ejemplo, o con un valor variable utilizando consultas parametrizadas.
SELECT TOP 10
*
FROM
products p
ORDER BY
p.price ASC