Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
VAN TOEPASSING OP:  NoSQL
Naast het uitgeven van query's met behulp van de API voor NoSQL in Azure Cosmos DB biedt de SDK aan de serverzijde van Azure Cosmos DB een JavaScript-interface voor het uitvoeren van geoptimaliseerde query's in opgeslagen procedures en triggers in Azure Cosmos DB. U hoeft zich niet bewust te zijn van de SQL-taal om deze JavaScript-interface te gebruiken. Met de JavaScript-query-API kunt u programmatisch query's bouwen door predicaatfuncties door te geven in volgorde van functie-aanroepen, met een syntaxis die vergelijkbaar is met de ingebouwde matrix van ECMAScript5 en populaire JavaScript-bibliotheken zoals Lodash. Query's worden geparseerd door de JavaScript-runtime en efficiënt uitgevoerd met behulp van Azure Cosmos DB-indexen.
Ondersteunde JavaScript-functies
| Functie | Beschrijving | 
|---|---|
chain() ... .value([callback] [, options]) | 
Hiermee wordt een gekoppelde aanroep gestart die moet worden beëindigd met value(). | 
filter(predicateFunction [, options] [, callback]) | 
Filtert de invoer met behulp van een predicaatfunctie die waar/onwaar retourneert om invoerdocumenten in de resulterende set te filteren. Deze functie gedraagt zich vergelijkbaar met een WHERE-component in SQL. | 
flatten([isShallow] [, options] [, callback]) | 
Hiermee worden matrices van elk invoeritem gecombineerd en afgevlakt in één matrix. Deze functie gedraagt zich vergelijkbaar met SelectMany in LINQ. | 
map(transformationFunction [, options] [, callback]) | 
Hiermee past u een projectie toe op basis van een transformatiefunctie waarmee elk invoeritem wordt toegewezen aan een JavaScript-object of -waarde. Deze functie gedraagt zich vergelijkbaar met een SELECT-component in SQL. | 
pluck([propertyName] [, options] [, callback]) | 
Deze functie is een snelkoppeling voor een kaart waarmee de waarde van één eigenschap uit elk invoeritem wordt geëxtraheerd. | 
sortBy([predicate] [, options] [, callback]) | 
Produceert een nieuwe set documenten door de documenten in de invoerdocumentstroom in oplopende volgorde te sorteren met behulp van het opgegeven predicaat. Deze functie gedraagt zich vergelijkbaar met een ORDER BY-component in SQL. | 
sortByDescending([predicate] [, options] [, callback]) | 
Produceert een nieuwe set documenten door de documenten in de invoerdocumentstroom in aflopende volgorde te sorteren met behulp van het opgegeven predicaat. Deze functie gedraagt zich vergelijkbaar met een ORDER BY x DESC-component in SQL. | 
unwind(collectionSelector, [resultSelector], [options], [callback]) | 
Voert een self-join met binnenste matrix uit en voegt resultaten van beide zijden toe als tuples aan de resultaatprojectie. Bijvoorbeeld, bij het samenvoegen van een persoon document met person.pets worden [persoon, huisdier] tuples geproduceerd. Dit is vergelijkbaar met SelectMany in .NET LINQ. | 
Wanneer deze worden opgenomen in predicaat- en/of selectorfuncties, worden de volgende JavaScript-constructies automatisch geoptimaliseerd voor uitvoering rechtstreeks op Azure Cosmos DB-indexen:
- Eenvoudige operators: 
=+-*/%|^&==!====!==<><=>=||&&<<>>>>>~ - Letterlijke waarden, inclusief het letterlijke object: 
{} - var, return
 
De volgende JavaScript-constructies worden niet geoptimaliseerd voor Azure Cosmos DB-indexen:
- Controlestroom: 
ifforwhile - Functie-aanroepen
 
Voor meer informatie, zie de JavaScript-documentatie aan de serverzijde van Azure Cosmos DB.
Cheatsheet voor SQL naar JavaScript
De volgende tabel bevat verschillende SQL-query's en de bijbehorende JavaScript-query's. Net als bij SQL-query's zijn eigenschappen (bijvoorbeeld item.id) hoofdlettergevoelig.
Notitie
              __ (dubbele onderstreping) is een alias naar getContext().getCollection() bij gebruik van de JavaScript-query-API.
| SQL | JavaScript-query-API | Beschrijving | 
|---|---|---|
| SELECTEREN* VAN DOCUMENTEN  | 
__.map(function(doc) {  document retourneren; });  | 
Resulteert in alle documenten (gepagineerd met vervolgtoken) zoals dat is. | 
| SELECTEREN  docs.id, docs.message AS msg, documenten.acties VAN DOCUMENTEN  | 
__.map(function(doc) { retourneren { id: doc.id, msg: doc.message, acties:doc.acties }; });  | 
Projecteert de ID, het bericht (onder alias 'msg') en de actie van alle documenten. | 
| SELECTEREN* VAN DOCUMENTEN WAAR docs.id="X998_Y998"  | 
__.filter(function(doc) { return doc.id ==="X998_Y998"; });  | 
Query's voor documenten met het predicaat: id = "X998_Y998". | 
| SELECTEREN* VAN DOCUMENTEN WAAR ARRAY_CONTAINS(docs.Tags, 123)  | 
__.filter(function(x) { x.Tags && x.Tags.indexOf(123) > -1; });  | 
Query's naar documenten die een eigenschap Tags hebben en waarbij Tags een array is met de waarde 123. | 
| SELECTEREN docs.id, docs.message AS msg VAN DOCUMENTEN WAAR docs.id="X998_Y998"  | 
__.chain() .filter(function(doc) { return doc.id ==="X998_Y998"; }) .map(function(doc) { retourneren { id: doc.id, msg: doc.message }; }) .value();  | 
Query's voor documenten met een predicaat, id = 'X998_Y998', en projecten vervolgens de id en het bericht (met alias naar msg). | 
| SELECT VALUE-tag VAN DOCUMENTEN JOIN-tag IN Tags documenten ORDER BY docs._ts  | 
__.chain() .filter(function(doc) { document retourneren. Tags && Array.isArray(doc. Tags); }) .sortBy(function(doc) { doc._ts; }) .pluck("Taggen") .flatten() .value()  | 
Hiermee filtert u op documenten met een array-eigenschap, Tags, sorteert u de resulterende documenten op basis van de _ts tijdstempel-systeemeigenschap, en projecteert en vlak maakt het de array Tags. | 
Volgende stappen
Meer concepten en procedures voor het schrijven en gebruiken van opgeslagen procedures, triggers en door de gebruiker gedefinieerde functies in Azure Cosmos DB:
- Opgeslagen procedures en triggers schrijven met behulp van de JavaScript-query-API
 - Werken met opgeslagen procedures, triggers en door de gebruiker gedefinieerde functies van Azure Cosmos DB
 - Opgeslagen procedures, triggers, door de gebruiker gedefinieerde functies gebruiken in Azure Cosmos DB
 - Azure Cosmos DB JavaScript server-side API-referentie
 - JavaScript ES6 (ECMA 2015)