Saltar al contenido

¿Cómo escribir una consulta LIKE en Azure CosmosDB?

Haz todo lo posible por interpretar el código de forma correcta antes de usarlo a tu trabajo y si ttienes algo que aportar puedes decirlo en los comentarios.

Solución:

ACTUALIZAR :

¡Ahora puede usar la palabra clave LIKE para realizar búsquedas de texto en la API SQL (núcleo) de Azure Cosmos DB!

EJEMPLO:

SELECT *
FROM c
WHERE c.description LIKE "%cereal%"

Respuesta VIEJA:

Esto se puede lograr de 2 maneras

(Yo actualmente Azure Cosmosdb apoya el CONTAINS, STARTSWITHy ENDSWITH funciones integradas que son equivalentes a LIKE.

La palabra clave para LIKE en Cosmosdb es Contiene.

SELECT * FROM c WHERE CONTAINS(c.pi, '09')

Entonces, en tu caso, si quieres hacer coincidir el patrón 09%001necesitas usar:

SELECT * FROM c WHERE STARTSWITH(c.pi, '09') AND ENDSWITH(c.pi, '001')

(ii) Como se menciona en 404, use funciones definidas por el usuario de la API de SQL que admitan expresiones regulares:

function executeRegex(str, pattern) 
    let regex=RegExp(pattern);
    return regex.test(str);


SELECT udf.EXECUTE_REGEX("foobar", ".*bar")

Otra posibilidad es crear su propia función definida por el usuario. Como ejemplo, aquí hay una verificación de expresiones regulares:

function matchRegex(str, pattern) 
    let regex=RegExp(pattern);
    return regex.test(str);

Creado bajo el nombre MATCH_REGEX entonces se puede usar como:

SELECT udf.MATCH_REGEX("09001001", "^09.*001$")

Como nota: eliminará cualquier optimización de índice que, por ejemplo, STARTSWITH tendría. Aunque permite patrones mucho más complejos. Por lo tanto, puede ser beneficioso utilizar filtros adicionales que sean capaces de utilizar el índice para acotar la búsqueda. Por ejemplo, usando StartsWith(c.property1, '09') como adición al ejemplo anterior en un WHERE cláusula.

ACTUALIZAR:

Cosmos ahora tiene un RegexMatch function que puede hacer lo mismo. Si bien la documentación de MongoApi menciona el $regex puede usar el índice para optimizar su consulta si se adhiere a ciertas reglas, este no parece ser el caso para SqlApi (en este momento).

Comentarios y calificaciones

Agradecemos que quieras añadir valor a nuestra información asistiendo con tu experiencia en las ilustraciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *