Interroger des données à l’aide d’Azure Cosmos DB for MongoDB

S’APPLIQUE À : MongoDB

Azure Cosmos DB for MongoDB prend en charge les requêtes MongoDB.

Cet article décrit les tâches suivantes :

  • Interrogation de données stockées dans votre base de données Azure Cosmos DB à l’aide de l’interpréteur de commandes MongoDB

Vous pouvez commencer par utiliser les exemples dans cet article.

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
}

Exemple de requête 1

Étant donné l’exemple de document de famille, la requête suivante retourne les documents où le champ id correspond à WakefieldFamily.

Requête :

db.families.find({ id: "WakefieldFamily"})

Résultats :

{
    "_id": "ObjectId(\"58f65e1198f3a12c7090e68c\")",
    "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
}

Exemple de requête 2

La requête suivante renvoie tous les enfants de la famille.

Requête :

db.families.find( { id: "WakefieldFamily" }, { children: true } )

Résultats :

{
    "_id": "ObjectId("58f65e1198f3a12c7090e68c")",
    "children": [
      {
        "familyName": "Merriam",
        "givenName": "Jesse",
        "gender": "female",
        "grade": 1,
        "pets": [
          { "givenName": "Goofy" },
          { "givenName": "Shadow" }
        ]
      },
      {
        "familyName": "Miller",
        "givenName": "Lisa",
        "gender": "female",
        "grade": 8
      }
    ]
}

Exemple de requête 3

La requête suivante renvoie toutes les familles qui sont enregistrées.

Requête :

db.families.find( { "isRegistered" : true })

Résultats :

Aucun document n’est retourné.

Exemple de requête 4

La requête suivante retourne toutes les familles qui ne sont pas enregistrées.

Requête :

db.families.find( { "isRegistered" : false })

Résultats :

{
    "_id": ObjectId("58f65e1198f3a12c7090e68c"),
    "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
}

Exemple de requête 5

La requête suivante retourne toutes les familles dans l’état de New York (NY) qui ne sont pas enregistrées.

Requête :

db.families.find( { "isRegistered" : false, "address.state" : "NY" })

Résultats :

{
    "_id": ObjectId("58f65e1198f3a12c7090e68c"),
    "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
}

Exemple de requête 6

La requête suivante renvoie toutes les familles dans lesquelles les enfants sont en 8e année.

Requête :

db.families.find( { children : { $elemMatch: { grade : 8 }} } )

Résultats :

{
    "_id": ObjectId("58f65e1198f3a12c7090e68c"),
    "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
}

Exemple de requête 7

La requête suivante renvoie toutes les familles dont le nombre d’enfants est 3.

Requête :

db.Family.find( {children: { $size:3} } )

Résultats :

Aucun résultat n’est retourné, car aucune famille n’a plus de deux enfants. Cette requête réussit et retourne le document complet seulement lorsque la valeur du paramètre est 2.

Étapes suivantes

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

  • Vous avez appris à interroger des données avec Azure Cosmos DB for MongoDB

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