Wykonywanie zapytań o dane przy użyciu interfejsu API usługi Azure Cosmos DB dla bazy danych MongoDBQuery data by using Azure Cosmos DB's API for MongoDB

Interfejs API usługi Azure Cosmos DB dla bazy danych MongoDB obsługuje zapytania bazy danych MongoDB.The Azure Cosmos DB's API for MongoDB supports MongoDB queries.

W tym artykule opisano następujące zadania:This article covers the following tasks:

  • Wykonywanie zapytania o dane przechowywane w bazie danych Cosmos za pomocą powłoki bazy danych MongoDBQuerying data stored in your Cosmos database using MongoDB shell

Możesz rozpocząć pracę, korzystając z przykładów zawartych w tym dokumencie i obejrzeć wideo Query Azure Cosmos DB with MongoDB shell (Wykonywanie zapytań względem usługi Azure Cosmos DB za pomocą powłoki bazy danych MongoDB).You can get started by using the examples in this document and watch the Query Azure Cosmos DB with MongoDB shell video .

Przykładowy dokumentSample document

Zapytania w tym artykule korzystają z następującego przykładowego dokumentu.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
}

Przykładowe zapytanie 1Example query 1

Bazując na powyższym przykładowym dokumencie dotyczącym rodziny, następujące zapytanie zwraca dokumenty, dla których pole id ma wartość WakefieldFamily.Given the sample family document above, the following query returns the documents where the id field matches WakefieldFamily.

ZapytanieQuery

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

ResultsResults

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

Przykładowe zapytanie 2Example query 2

Następne zapytanie zwraca wszystkie dzieci w rodzinie.The next query returns all the children in the family.

ZapytanieQuery

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

ResultsResults

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

Przykładowe zapytanie 3Example query 3

Następne zapytanie zwraca wszystkie zarejestrowane rodziny.The next query returns all the families that are registered.

ZapytanieQuery

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

Wyniki Nie zostanie zwrócony żaden dokument.Results No document will be returned.

Przykładowe zapytanie 4Example query 4

Następne zapytanie zwraca wszystkie niezarejestrowane rodziny.The next query returns all the families that are not registered.

ZapytanieQuery

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

ResultsResults

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

}}

Przykładowe zapytanie 5Example query 5

Następne zapytanie zwraca wszystkie rodziny, które nie zostały zarejestrowane i dla których stan to NY.The next query returns all the families that are not registered and state is NY.

ZapytanieQuery

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

ResultsResults

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

}}

Przykładowe zapytanie 6Example query 6

Następne zapytanie zwraca wszystkie rodziny, w których dzieci chodzą do 8 klasy.The next query returns all the families where children grades are 8.

ZapytanieQuery

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

ResultsResults

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

}}

Przykładowe zapytanie 7Example query 7

Następne zapytanie zwraca wszystkie rodziny, w których rozmiar tablicy z dziećmi to 3.The next query returns all the families where size of children array is 3.

ZapytanieQuery

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

ResultsResults

Żadne wyniki nie zostaną zwrócone, ponieważ nie ma żadnych rodzin z więcej niż 2 dzieci.No results will be returned as there are no families with more than two children. To zapytanie powiedzie się i zwróci pełny dokument tylko wtedy, gdy parametr będzie równy 2.Only when parameter is 2 this query will succeed and return the full document.

Kolejne krokiNext steps

W tym samouczku wykonano następujące czynności:In this tutorial, you've done the following:

  • Przedstawiono sposób wykonywania zapytań przy użyciu interfejsu API usługi Cosmos DB dla bazy danych MongoDBLearned how to query using Cosmos DB’s API for MongoDB

Możesz teraz przejść do następnego samouczka, aby dowiedzieć się, jak dystrybuować swoje dane globalnie.You can now proceed to the next tutorial to learn how to distribute your data globally.