Esercitazione: Eseguire query in Azure Cosmos DB con l'API di MongoDBTutorial: Query Azure Cosmos DB by using the MongoDB API

L'API per MongoDB supporta l'esecuzione di query nella shell di MongoDB.The Azure Cosmos DB API for MongoDB supports MongoDB shell queries.

Questo articolo illustra le attività seguenti:This article covers the following tasks:

  • Esecuzione di query sui dati con MongoDBQuerying data with MongoDB

Per iniziare, guardare questo video con Andy Hoh, Program Manager di Azure Cosmos DB, sull'esecuzione di query in MongoDB:You can get started by watching this video with Azure Cosmos DB Program Manager Andy Hoh about querying MongoDB:

Documento di esempioSample document

Le query di questo articolo usano il documento di esempio seguente.The queries in this article use the following sample document.

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

Query di esempio 1Example query 1

Nel precedente documento della famiglia, la query seguente restituisce i documenti in cui il campo ID corrisponde a WakefieldFamily.Given the sample family document above, the following query returns the documents where the id field matches WakefieldFamily.

QueryQuery

db.families.find({ id: “WakefieldFamily”})

RisultatiResults

{
"_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
}

Query di esempio 2Example query 2

La query seguente restituisce tutti i figli della famiglia.The next query returns all the children in the family.

QueryQuery

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

RisultatiResults

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

Query di esempio 3Example query 3

La query seguente restituisce tutte le famiglie registrate.The next query returns all the families that are registered.

QueryQuery

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

Risultati Non viene restituito alcun documento.Results No document will be returned.

Query di esempio 4Example query 4

La query seguente restituisce tutte le famiglie non registrate.The next query returns all the families that are not registered.

QueryQuery

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

RisultatiResults

 {
"_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

}}

Query di esempio 5Example query 5

La query seguente restituisce tutte le famiglie non registrate e il cui stato di residenza è NY.The next query returns all the families that are not registered and state is NY.

QueryQuery

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

RisultatiResults

 {
"_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

}}

Query di esempio 6Example query 6

La query seguente restituisce tutte le famiglie in cui il grado della classe frequentata dai figli corrisponde a 8.The next query returns all the families where children grades are 8.

QueryQuery

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

RisultatiResults

 {
"_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

}}

Query di esempio 7Example query 7

La query seguente restituisce tutte le famiglie in cui la dimensione della matrice dei figli corrisponde a 3.The next query returns all the families where size of children array is 3.

QueryQuery

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

RisultatiResults

Non verranno restituiti risultati perché non ci sono famiglie con più di due figli.No results will be returned as there are no families with more than two children. La query avrà esito positivo e restituirà l'intero documento solo quando il parametro è 2.Only when parameter is 2 this query will succeed and return the full document.

Passaggi successiviNext steps

In questa esercitazione sono state eseguite le operazioni seguenti:In this tutorial, you've done the following:

  • È stato appreso come eseguire una query usando MongoDBLearned how to query using MongoDB

È ora possibile passare all'esercitazione successiva per imparare a distribuire i dati a livello globale.You can now proceed to the next tutorial to learn how to distribute your data globally.