Partager via


Tutoriel : Interroger des données dans Azure Cosmos DB for NoSQL

Azure Cosmos DB for NoSQL prend en charge l’interrogation de documents à l’aide de la syntaxe de requête intégrée. Cet article fournit un exemple de document et deux exemples de requêtes et de résultats.

Cet article décrit les tâches suivantes :

  • Interroger des données NoSQL avec la syntaxe de requête intégrée

Prerequisites

Vous pouvez exécuter les requêtes à l’aide de l’Explorateur Azure Cosmos DB dans le Portail Azure. Vous pouvez également exécuter des requêtes à l’aide de l’API REST ou de différents kits SDK.

Pour plus d’informations sur les requêtes, consultez Requêtes dans Azure Cosmos DB pour NoSQL.

Exemple de document

L’exemple de document suivant est utilisé pour les requêtes de cet article.

{
  "id": "WakefieldFamily",
  "parents": [
    { "familyName": "Wakefield", "givenName": "Robin" },
    { "familyName": "Miller", "givenName": "Ben" }
  ],
  "children": [
    {
      "familyName": "Merriam", 
      "givenName": "Jesse", 
      "gender": "female", "grade": 1,
      "pets": [
          { "givenName": "Goofy" },
          { "givenName": "Shadow" }
      ]
    },
    { 
      "familyName": "Miller", 
        "givenName": "Lisa", 
        "gender": "female", 
        "grade": 8 
    }
  ],
  "address": { "state": "NY", "county": "Manhattan", "city": "NY" },
  "creationDate": 1431620462,
  "isRegistered": false
}

Sélectionner tous les champs et appliquer un filtre

Étant donné l’exemple de document de famille, la requête suivante renvoie les documents où le champ ID correspond WakefieldFamily. Comme il s’agit d’une instruction SELECT *, le résultat de la requête est le document JSON complet :

Requête:

SELECT * 
FROM Families f 
WHERE f.id = "WakefieldFamily"

Résultats :

{
  "id": "WakefieldFamily",
  "parents": [
    { "familyName": "Wakefield", "givenName": "Robin" },
    { "familyName": "Miller", "givenName": "Ben" }
  ],
  "children": [
    {
      "familyName": "Merriam", 
      "givenName": "Jesse", 
      "gender": "female", "grade": 1,
      "pets": [
          { "givenName": "Goofy" },
          { "givenName": "Shadow" }
      ]
    },
    { 
      "familyName": "Miller", 
        "givenName": "Lisa", 
        "gender": "female", 
        "grade": 8 
    }
  ],
  "address": { "state": "NY", "county": "Manhattan", "city": "NY" },
  "creationDate": 1431620462,
  "isRegistered": false
}

Sélectionner un produit croisé d’un champ de collection enfant

La requête suivante retourne tous les prénoms des enfants de la famille dont l’ID correspond à WakefieldFamily.

Requête:

SELECT c.givenName 
FROM Families f 
JOIN c IN f.children 
WHERE f.id = 'WakefieldFamily'

Résultats :

[
  {
    "givenName": "Jesse"
  },
  {
    "givenName": "Lisa"
  }
]

Étape suivante