CosmosDB: effettuare una query LIKE

Sapevate che anche in CosmosDB e’ possibile effettuare delle query con una clausola LIKE all’interno della WHERE CONDITION?

Like

Una volta identificato il container non vi restera’ che eseguire questa query

1
2
3
4
SELECT * 
    FROM c
    WHERE 
        c.textValue LIKE '%keyword%'

Eseguendo la precedente query direttamente sul Azure Portal otterremo il subset di items contenenti all’interno del campo textValue il valore di keyword.

Case Sensitive

Attenzione, la ricerca all’interno di CosmosDB e’ CASE SENSITIVE quindi potreste perdervi una serie di risultati che -abituati a lavorare su SQL Server- pensavate di trovarvi. Per risolvere il tutto e’ possibile adottare soluzioni tipo la seguente. In questo modo sfruttando UPPER il contenuto di textValue verra’ reso maiuscolo e non vi perderete risultati. Semplice no?

Soluzione 1

1
2
3
4
SELECT * 
    FROM c
    WHERE 
        UPPER(c.textValue) LIKE '%KEYWORD%'

Soluzione 2

1
2
3
4
SELECT * 
    FROM c
    WHERE 
        UPPER(c.textValue) LIKE UPPER( '%kEyWoRd%' )