MongoDB için Azure Cosmos DB API'sini kullanarak verileri sorgulama
Uygulama hedefı:
MongoDB için Azure Cosmos DB API
MongoDB için Azure Cosmos DB API'si MongoDB sorgularını destekler.
Bu makale aşağıdaki görevleri kapsar:
- MongoDB kabuğunu kullanarak Cosmos veritabanınıza depolanmış 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ülecek.
Ö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 Cosmos DB API'sini kullanarak sorgulamayı öğrendin
Artık verilerinizi genel olarak nasıl dağıtacağınızı öğrenmek için sonraki öğreticiye ilerleyebilirsiniz.