CosmosDB: Query, SubQuery & JOIN

Lo scorso mese avevo scritto l’articolo CosmosDB: string array e WHERE condition dove spiegavo come sfruttare/ utilizzare ARRAY_CONTAINS in CosmosDB. Oggi desidero mostrarvi come aggirare eventuali problemi che si possono riscontrare con esso.
Caso Pratico
Prima di entrare nel vivo del contenuto voglio raccontarvi la situazione -reale- che mi ha fatto venire in mente questo articolo. Riprendiamo il documento proposto la volta scorsa per rinfrescare la memoria.
|
|
Come descritto nel precedente articolo, la soluzione ideale per cercare tramite il valore di id sarebbe il seguente
|
|
pero’ vi voglio segnalare che non -sempre- funziona.
JOIN / SubQuery
Il problema e’ molto semplice. Sfruttando ARRAY_CONTAINS siamo soggetti al case sensitive e non vi e’ modo (almeno, che io sappia) di sfruttare le soluzioni scritte nel post CosmosDB: effettuare una query LIKE.
Per applicare delle logiche di comparazione case insensitive in queste condizioni dovremmo semplicemente creare delle subquery all’interno del documento stesso.
Come? Ecco l’esempio pratico
|
|
Semplice vero? A questo punto vi bastera’ proiettare i campi che vi serviranno nel DTO ed il gioco e’ fatto.