CosmosDB: Property & defined

Questa settimana ho deciso di aprire gli articoli sul blog con un piccolo tips sempre a tema CosmosDB. Molto probabilmente o lettori piu’ attenti del mio blog avranno una “parolina magica” nel corso del mio precedente articolo CosmosDB: FROM Property.

IS_DEFINED

Ripartiamo dalla query scritta nel precedente articolo. Se volete maggiori informazioni sul modello e sul perche’ di quella query resta valido l’invito a rileggere il post originale

1
SELECT c.emailAddress FROM c WHERE IS_DEFINED( c.emailAddress )

Nella WHERE avrete notato la presenza di IS_DEFINED ed e’ proprio grazie al suo utilizzo che possiamo capire se e’ presente o meno una proprieta’ nel nostro documento. Nel caso specifico verranno presi tutti i campi dove emailAddress sara’ presente.

Tips

Attenzione: Nel momento in cui IS_DEFINED ritorna TRUE non significa che la proprieta’ sia valorizzata. Il ritorno di true e’ legato esclusivamente alla presenza di essa nel documento.

1
2
3
4
5
6
7
8
[
{
    "emailAddress": null
},
{
    "emailAddress": ""
}
]

Come avrete notato i precedenti documenti non hanno un valore associato ad emailAddress, ma essendo la proprieta’ presente nel documento verranno restituiti come validi.

Interessante vero?