Utiliser des tableaux et des objets dans Azure Cosmos DB for NoSQL
S’APPLIQUE À : NoSQL
Voici un élément qui est utilisé dans des exemples tout au long de cet article.
{
"name": "Sondon Fins",
"categories": [
{ "name": "swim" },
{ "name": "gear"}
],
"metadata": {
"sku": "73310",
"manufacturer": "AdventureWorks"
},
"priceInUSD": 132.35,
"priceInCAD": 174.50
}
Tableaux
Vous pouvez construire des tableaux en utilisant de valeurs statiques, comme illustré dans l’exemple suivant.
SELECT
[p.priceInUSD, p.priceInCAD] AS priceData
FROM products p
[
{
"priceData": [
132.35,
174.5
]
}
]
Vous pouvez également utiliser comme ARRAY
expression pour construire un tableau à partir des résultats d’une sous-requête. Cette requête obtient toutes les catégories distinctes.
SELECT
p.id,
ARRAY (SELECT DISTINCT VALUE c.name FROM c IN p.categories) AS categoryNames
FROM
products p
[
{
"id": "a0151c77-ffc3-4fa6-a495-7b53d936faa6",
"categoryNames": [
"swim",
"gear"
]
}
]
Itération
L’API pour NoSQL prend en charge l’itération sur les tableaux JSON, avec comme IN
mot clé dans la source FROM
.
Par exemple, la requête suivante effectue une itération pour tags
chaque élément du conteneur. La sortie fractionne la valeur du tableau et aplatit les résultats en un tableau unique.
SELECT
*
FROM
products IN products.categories
[
{
"name": "swim"
},
{
"name": "gear"
}
]
Vous pouvez même filtrer chaque entrée du tableau, comme dans l’exemple suivant :
SELECT VALUE
p.name
FROM
p IN p.categories
WHERE
p.name LIKE "ge%"
Les résultats sont :
[
"gear"
]
Vous pouvez également effectuer des agrégations sur le résultat d’une itération de tableau. Par exemple, la requête suivante compte le nombre d’étiquettes :
SELECT VALUE
COUNT(1)
FROM
p IN p.categories
Les résultats sont :
[
2
]
Notes
Lorsque vous utilisez le mot clé IN
pour l’itération, vous ne pouvez pas filtrer ou projeter des propriétés en dehors du tableau. Utilisez plutôt de la jointure réflexive.
Contenu connexe
Commentaires
https://aka.ms/ContentUserFeedback.
Prochainement : Tout au long de l'année 2024, nous supprimerons progressivement les GitHub Issues en tant que mécanisme de retour d'information pour le contenu et nous les remplacerons par un nouveau système de retour d'information. Pour plus d’informations, voir:Soumettre et afficher des commentaires pour