Abfragen von Daten mit der API für MongoDB von Azure Cosmos DBQuery data by using Azure Cosmos DB's API for MongoDB

Die API für MongoDB von Azure Cosmos DB unterstützt MongoDB-Abfragen.The Azure Cosmos DB's API for MongoDB supports MongoDB queries.

In diesem Artikel werden die folgenden Aufgaben behandelt:This article covers the following tasks:

  • Abfragen von in der Cosmos-Datenbank gespeicherten Daten mithilfe der MongoDB-ShellQuerying data stored in your Cosmos database using MongoDB shell

Sie können mithilfe der Beispiele in diesem Dokument loslegen und sich das Video Query Azure Cosmos DB with MongoDB shell (Abfragen von Azure Cosmos DB mit MongoDB-Shell) ansehen.You can get started by using the examples in this document and watch the Query Azure Cosmos DB with MongoDB shell video .

BeispieldokumentSample document

Die Abfragen in diesem Artikel verwenden das folgende Beispieldokument.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
}

Beispielabfrage 1Example query 1

Im Beispiel des obigen Familienbeispieldokuments gibt die folgende Abfrage die Dokumente zurück, in denen das Feld „id“ mit WakefieldFamily übereinstimmt.Given the sample family document above, the following query returns the documents where the id field matches WakefieldFamily.

AbfrageQuery

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

ErgebnisseResults

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

Beispielabfrage 2Example query 2

Die nächste Abfrage gibt alle Kinder in der Familie zurück.The next query returns all the children in the family.

AbfrageQuery

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

ErgebnisseResults

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

Beispielabfrage 3Example query 3

Die nächste Abfrage gibt alle registrierten Familien zurück.The next query returns all the families that are registered.

AbfrageQuery

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

Ergebnisse Kein Dokument wird zurückgegeben.Results No document will be returned.

Beispielabfrage 4Example query 4

Die nächste Abfrage gibt alle nicht registrierten Familien zurück.The next query returns all the families that are not registered.

AbfrageQuery

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

ErgebnisseResults

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

}}

Beispielabfrage 5Example query 5

Die nächste Abfrage gibt alle nicht registrierten Familien im Bundesstaat NY zurück.The next query returns all the families that are not registered and state is NY.

AbfrageQuery

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

ErgebnisseResults

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

}}

Beispielabfrage 6Example query 6

Die nächste Abfrage gibt alle Familien zurück, deren Kinder in Klasse 8 gehen.The next query returns all the families where children grades are 8.

AbfrageQuery

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

ErgebnisseResults

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

}}

Beispielabfrage 7Example query 7

Die nächste Abfrage gibt alle Familien zurück, wo das Kinderarray die Größe 3 hat.The next query returns all the families where size of children array is 3.

AbfrageQuery

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

ErgebnisseResults

Da keine Familien mit mehr als zwei Kindern vorhanden sind, werden keine Ergebnisse zurückgegeben.No results will be returned as there are no families with more than two children. Nur wenn der Parameter 2 ist, ist diese Abfrage erfolgreich und gibt das vollständige Dokument zurück.Only when parameter is 2 this query will succeed and return the full document.

Nächste SchritteNext steps

In diesem Tutorial haben Sie die folgenden Aufgaben ausgeführt:In this tutorial, you've done the following:

  • Sie haben erfahren, wie Sie Abfragen mithilfe der API für MongoDB von Cosmos DB ausführen können.Learned how to query using Cosmos DB’s API for MongoDB

Sie können jetzt mit dem nächsten Tutorial fortfahren, um zu erfahren, wie Sie Ihre Daten global verteilen.You can now proceed to the next tutorial to learn how to distribute your data globally.