MongoDB için Azure Cosmos DB API'sini kullanarak verileri sorgulama

ŞUNLAR IÇIN GEÇERLIDIR: MongoDB

MongoDB için Azure Cosmos DB API'siMongoDB sorgularını destekler.

Bu makale aşağıdaki görevleri kapsar:

  • MongoDB kabuğunu kullanarak Azure Cosmos DB veritabanınızda depolanan verileri sorgulama

Başlamak için bu belgedeki örnekleri kullanabilir ve Query Azure Cosmos DB with MongoDB shell (Azure Cosmos DB'yi MongoDB kabuğu ile sorgulama) videosunu izleyebilirsiniz.

Örnek belge

Bu makaledeki sorgular aşağıdaki örnek belgeyi kullanır.

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

Örnek sorgu 1

Yukarıda verilen örnek aile belgesiyle aşağıdaki sorgu, kimlik alanının WakefieldFamily ile eşleştiği belgeleri döndürür.

Sorgu

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

Sonuçlar

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

Örnek sorgu 2

Sonraki sorgu, ailedeki tüm çocukları döndürür.

Sorgu

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

Sonuçlar

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

Örnek sorgu 3

Sonraki sorgu, kayıtlı olan tüm aileleri döndürür.

Sorgu

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

Sonuçlar

Hiçbir belge döndürülmeyecek.

Örnek sorgu 4

Sonraki sorgu, kayıtlı olmayan tüm aileleri döndürür.

Sorgu

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

Sonuçlar

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

Örnek sorgu 5

Sonraki sorgu, kayıtlı olmayan ve durumu NY olan tüm aileleri döndürür.

Sorgu

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

Sonuçlar

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

Örnek sorgu 6

Sonraki sorgu, çocukları 8. sınıfta olan tüm aileleri döndürür.

Sorgu

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

Sonuçlar

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

Örnek sorgu 7

Sonraki sorgu, çocuk dizisi boyutu 3 olan tüm aileleri döndürür.

Sorgu

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

Sonuçlar

İkiden fazla çocuğu olan bir aile olmadığından herhangi bir sonuç döndürülmez. Yalnızca parametre 2 olduğunda bu sorgu başarılı olur ve tam belgeyi döndürür.

Sonraki adımlar

Bu öğreticide aşağıdakileri yaptınız:

  • MongoDB için Azure Cosmos DB API'sini kullanarak sorgulamayı öğrenin

Artık verilerinizi genel olarak nasıl dağıtacağınızı öğrenmek için sonraki öğreticiye ilerleyebilirsiniz.