Eventi
Ottieni gratuitamente la certificazione in Microsoft Fabric.
19 nov, 23 - 10 dic, 23
Per un periodo di tempo limitato, il team della community di Microsoft Fabric offre buoni per esami DP-600 gratuiti.
Prepara oraQuesto browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
SI APPLICA A: NoSQL
Oltre a eseguire query usando l'API per NoSQL di Azure Cosmos DB, l'SDK lato server di Azure Cosmos DB offre un'interfaccia JavaScript per eseguire query ottimizzate nelle stored procedure e nei trigger di Azure Cosmos DB. Non è necessario conoscere il linguaggio SQL per usare questa interfaccia JavaScript. L'API di query di JavaScript consente di creare query a livello di programmazione passando funzioni di predicato in una sequenza di chiamate di funzione, con una sintassi simile alle librerie JavaScript predefinite di ECMAScript5 e alle librerie JavaScript più diffuse come Lodash. Le query vengono analizzate dal runtime JavaScript ed eseguite in modo efficiente usando gli indici di Azure Cosmos DB.
Funzione | Descrizione |
---|---|
chain() ... .value([callback] [, options]) |
Avvia una chiamata concatenata che deve terminare con value(). |
filter(predicateFunction [, options] [, callback]) |
Filtra l'input usando una funzione di predicato che restituisce true o false per includere o escludere i documenti di input dal set risultante. Il comportamento di questa funzione è simile a quello di una clausola WHERE in SQL. |
flatten([isShallow] [, options] [, callback]) |
Combina e rende flat le matrici da ogni elemento di input in un'unica matrice. Il comportamento di questa funzione è simile a quello di SelectMany in LINQ. |
map(transformationFunction [, options] [, callback]) |
Applica una proiezione a partire da una funzione di trasformazione che esegue il mapping di ogni elemento di input a un valore o oggetto JavaScript. Il comportamento di questa funzione è simile a quello di una clausola SELECT in SQL. |
pluck([propertyName] [, options] [, callback]) |
Questa funzione è un collegamento a una mappa che estrae il valore di una singola proprietà da ogni elemento di input. |
sortBy([predicate] [, options] [, callback]) |
Produce un nuovo set di documenti ordinandoli nel flusso di documenti di input in ordine crescente usando il predicato specificato. Il comportamento di questa funzione è simile a quello di una clausola ORDER BY in SQL. |
sortByDescending([predicate] [, options] [, callback]) |
Produce un nuovo set di documenti ordinandoli nel flusso di documenti di input in ordine decrescente usando il predicato specificato. Il comportamento di questa funzione è simile a quello di una clausola ORDER BY x DESC in SQL. |
unwind(collectionSelector, [resultSelector], [options], [callback]) |
Esegue un self join con inner array e aggiunge i risultati da entrambi i lati come di tuple alla proiezione dei risultati. Ad esempio, l'aggiunta di un documento Person con person.pets produrrebbe tuple [person, pet]. Il comportamento è simile a quello di SelectMany in .NET LINQ. |
Quando inclusi all'interno delle funzioni predicato e/o selettore, i seguenti costrutti JavaScript vengono automaticamente ottimizzati per l'esecuzione diretta sugli indici di Azure Cosmos DB:
=
+
-
*
/
%
|
^
&
==
!=
===
!==
<
>
<=
>=
||
&&
<<
>>
>>>
~
{}
I seguenti costrutti JavaScript non vengono ottimizzati per gli indici di Azure Cosmos DB:
if
for
while
Per ottenere altre informazioni, consultare la documentazione relativa a JavaScript lato server di Azure Cosmos DB.
Nella tabella seguente vengono presentate varie query SQL e le query JavaScript corrispondenti. Come per le query SQL, le proprietà ,ad esempio , item.id
fanno distinzione tra maiuscole e minuscole.
Nota
__
(doppio carattere di sottolineatura) è un alias per getContext().getCollection()
quando si usa l'API di query JavaScript.
SQL | API di query JavaScript | Descrizione |
---|---|---|
SELECT * FROM docs |
__.map(function(doc) { return doc; }); |
Viene restituita così com'è in tutti i documenti, impaginati con token di continuazione. |
SELECT docs.id, docs.message AS msg, docs.actions FROM docs |
__.map(function(doc) { return { id: doc.id, msg: doc.message, actions:doc.actions }; }); |
Proietta l'ID, il messaggio (con aliasing effettuato a msg) e l'azione da tutti i documenti. |
SELECT * FROM docs WHERE docs.id="X998_Y998" |
__.filter(function(doc) { return doc.id ==="X998_Y998"; }); |
Esegue una query sui documenti con il predicato: id = "X998_Y998". |
SELECT * FROM docs WHERE ARRAY_CONTAINS(docs.Tags, 123) |
__.filter(function(x) { return x.Tags && x.Tags.indexOf(123) > -1; }); |
Esegue una query sui documenti che hanno una proprietà Tags e Tags è una matrice che contiene il valore 123. |
SELECT docs.id, docs.message AS msg FROM docs WHERE docs.id="X998_Y998" |
__.chain() .filter(function(doc) { return doc.id ==="X998_Y998"; }) .map(function(doc) { return { id: doc.id, msg: doc.message }; }) .value(); |
Esegue una query sui documenti con un predicato id = "X998_Y998" e quindi proietta l'ID e il messaggio (con aliasing effettuato a msg). |
SELECT VALUE tag FROM docs JOIN tag IN docs.Tags ORDER BY docs._ts |
__.chain() .filter(function(doc) { return doc.Tags && Array.isArray(doc.Tags); }) .sortBy(function(doc) { return doc._ts; }) .pluck("Tags") .flatten() .value() |
Filtra i documenti che hanno la proprietà di matrice Tags, ordina i documenti risultanti in base alla proprietà di sistema timestamp _ts e quindi proietta e appiattisce la matrice Tags. |
Altre informazioni su come scrivere e usare stored procedure, trigger e funzioni definite dall'utente in Azure Cosmos DB:
Eventi
Ottieni gratuitamente la certificazione in Microsoft Fabric.
19 nov, 23 - 10 dic, 23
Per un periodo di tempo limitato, il team della community di Microsoft Fabric offre buoni per esami DP-600 gratuiti.
Prepara ora