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

S’APPLIQUE À : 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

Prérequis

Ce didacticiel suppose que vous ayez un compte, une base de données et un conteneur Azure Cosmos DB.

Vous ne disposez d’aucune de ces ressources ? Compléter ce démarrage rapide : Créer un compte, une base de données, un conteneur et des éléments Azure Cosmos DB à partir du portail Azure.

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 qui utilisent l’API REST ou des SDKs variées.

Pour plus d’informations sur les requêtes, consultez Définition démarrée avec les requêtes.

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"
  }
]

Étapes suivantes

Dans ce tutoriel, vous avez effectué les tâches suivantes :

  • Découvrez comment interroger à l’aide de la syntaxe de requête intégrée

Vous pouvez maintenant poursuivre avec le didacticiel suivant montrant comment distribuer vos données globalement.