Mengkueri data dengan menggunakan Azure Cosmos DB untuk MongoDB

BERLAKU UNTUK: MongoDB

Azure Cosmos DB untuk MongoDB mendukung kueri MongoDB.

Artikel ini membahas tugas-tugas berikut ini:

  • Mengkueri data yang disimpan di database Azure Cosmos DB Anda menggunakan shell MongoDB

Anda bisa memulai dengan menggunakan contoh dalam artikel ini.

Sampel dokumen

Kueri dalam artikel ini menggunakan sampel dokumen berikut.

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

Contoh kueri 1

Mengingat contoh dokumen keluarga, kueri berikut mengembalikan dokumen di mana id bidang cocok WakefieldFamily.

Kueri:

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

Hasil:

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

Contoh kueri 2

Kueri berikutnya mengembalikan semua anak dalam keluarga.

Kueri:

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

Hasil:

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

Contoh kueri 3

Kueri berikutnya mengembalikan semua keluarga yang terdaftar.

Kueri:

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

Hasil:

Tidak ada dokumen yang dikembalikan.

Contoh kueri 4

Kueri berikutnya mengembalikan semua keluarga yang tidak terdaftar.

Kueri:

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

Hasil:

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

Contoh kueri 5

Kueri berikutnya mengembalikan semua keluarga yang tidak terdaftar dan statusnya adalah NY.

Kueri:

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

Hasil:

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

Contoh kueri 6

Kueri berikutnya mengembalikan semua keluarga dengan anak-anak di kelas 8.

Kueri:

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

Hasil:

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

Contoh kueri 7

Kueri berikutnya mengembalikan semua keluarga dengan ukuran larik anak-anak 3.

Kueri:

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

Hasil:

Tidak ada hasil yang dikembalikan karena tidak ada keluarga dengan lebih dari dua anak. Hanya ketika nilai parameter adalah 2 apakah kueri ini berhasil dan mengembalikan dokumen lengkap.

Langkah berikutnya

Dalam tutorial ini, Anda telah melakukan tugas-tugas berikut:

  • Mempelajari cara mengkueri menggunakan Azure Cosmos DB untuk MongoDB

Anda sekarang dapat melanjutkan ke tutorial berikutnya untuk mempelajari cara mendistribusikan data Anda secara global.