Dotazování dat pomocí rozhraní API Azure Cosmos DB pro MongoDBQuery data by using Azure Cosmos DB's API for MongoDB

Rozhraní API Azure Cosmos DB pro MongoDB podporuje dotazy MongoDB.The Azure Cosmos DB's API for MongoDB supports MongoDB queries.

Tento článek se zabývá následujícími úkony:This article covers the following tasks:

  • Dotazování na data uložená ve vaší databázi Cosmos pomocí prostředí MongoDBQuerying data stored in your Cosmos database using MongoDB shell

Můžete začít s použitím příkladů v tomto dokumentu a podívat se na video o dotazování služby Azure Cosmos DB pomocí prostředí MongoDB Shell.You can get started by using the examples in this document and watch the Query Azure Cosmos DB with MongoDB shell video .

Ukázkový dokumentSample document

Dotazy v tomto článku využívají následující ukázkový dokument.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
}

Příklad dotazu 1Example query 1

S použitím výše uvedeného dokumentu family (rodina) vrátí následující dotaz dokumenty, jejichž pole ID odpovídá WakefieldFamily.Given the sample family document above, the following query returns the documents where the id field matches WakefieldFamily.

DotazQuery

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

VýsledkyResults

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

Příklad dotazu 2Example query 2

Další dotaz vrátí všechny děti v rodině.The next query returns all the children in the family.

DotazQuery

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

VýsledkyResults

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

Příklad dotazu 3Example query 3

Další dotaz vrátí všechny zaregistrované rodiny.The next query returns all the families that are registered.

DotazQuery

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

Výsledky Nevrátí se žádný dokument.Results No document will be returned.

Příklad dotazu 4Example query 4

Další dotaz vrátí všechny nezaregistrované rodiny.The next query returns all the families that are not registered.

DotazQuery

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

VýsledkyResults

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

}}

Příklad dotazu 5Example query 5

Další dotaz vrátí všechny nezaregistrované rodiny ve státě NY.The next query returns all the families that are not registered and state is NY.

DotazQuery

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

VýsledkyResults

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

}}

Příklad dotazu 6Example query 6

Další dotaz vrátí všechny rodiny s dětmi v 8. ročníku.The next query returns all the families where children grades are 8.

DotazQuery

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

VýsledkyResults

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

}}

Příklad dotazu 7Example query 7

Další dotaz vrátí všechny rodiny s polem children (děti) velikosti 3.The next query returns all the families where size of children array is 3.

DotazQuery

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

VýsledkyResults

Nevrátí se žádné výsledky, protože v žádné rodině není více než dvě děti.No results will be returned as there are no families with more than two children. Tento dotaz bude úspěšný pouze v případě, že parametr bude 2, a pak vrátí celý dokument.Only when parameter is 2 this query will succeed and return the full document.

Další krokyNext steps

V tomto kurzu jste provedli následující:In this tutorial, you've done the following:

  • Seznámili jste se s dotazování pomocí rozhraní Cosmos DB API pro MongoDB.Learned how to query using Cosmos DB’s API for MongoDB

Teď můžete pokračovat k dalšímu kurzu, kde se dozvíte, jak globálně distribuovat data.You can now proceed to the next tutorial to learn how to distribute your data globally.