DocumentDB SQL - Iteration
DocumentDB SQL में, Microsoft ने एक नया निर्माण जोड़ा है जिसका उपयोग JSON सरणियों पर पुनरावृत्ति के लिए समर्थन प्रदान करने के लिए IN कीवर्ड के साथ किया जा सकता है। FROM क्लॉज में पुनरावृत्ति के लिए सहायता प्रदान की जाती है।
हम पिछले उदाहरणों के समान तीन दस्तावेजों पर फिर से विचार करेंगे।
निम्नलिखित है AndersenFamily दस्तावेज़।
{
"id": "AndersenFamily",
"lastName": "Andersen",
"parents": [
{ "firstName": "Thomas", "relationship": "father" },
{ "firstName": "Mary Kay", "relationship": "mother" }
],
"children": [
{
"firstName": "Henriette Thaulow",
"gender": "female",
"grade": 5,
"pets": [ { "givenName": "Fluffy", "type": "Rabbit" } ]
}
],
"location": { "state": "WA", "county": "King", "city": "Seattle" },
"isRegistered": true
}
निम्नलिखित है SmithFamily दस्तावेज़।
{
"id": "SmithFamily",
"parents": [
{ "familyName": "Smith", "givenName": "James" },
{ "familyName": "Curtis", "givenName": "Helen" }
],
"children": [
{
"givenName": "Michelle",
"gender": "female",
"grade": 1
},
{
"givenName": "John",
"gender": "male",
"grade": 7,
"pets": [
{ "givenName": "Tweetie", "type": "Bird" }
]
}
],
"location": {
"state": "NY",
"county": "Queens",
"city": "Forest Hills"
},
"isRegistered": true
}
निम्नलिखित है WakefieldFamily दस्तावेज़।
{
"id": "WakefieldFamily",
"parents": [
{ "familyName": "Wakefield", "givenName": "Robin" },
{ "familyName": "Miller", "givenName": "Ben" }
],
"children": [
{
"familyName": "Merriam",
"givenName": "Jesse",
"gender": "female",
"grade": 6,
"pets": [
{ "givenName": "Charlie Brown", "type": "Dog" },
{ "givenName": "Tiger", "type": "Cat" },
{ "givenName": "Princess", "type": "Cat" }
]
},
{
"familyName": "Miller",
"givenName": "Lisa",
"gender": "female",
"grade": 3,
"pets": [
{ "givenName": "Jake", "type": "Snake" }
]
}
],
"location": { "state": "NY", "county": "Manhattan", "city": "NY" },
"isRegistered": false
}
आइए FROM क्लॉज में IN कीवर्ड के बिना एक सरल उदाहरण देखें।
निम्नलिखित क्वेरी है जो परिवार संग्रह से सभी माता-पिता को वापस कर देगी।
SELECT *
FROM Families.parents
जब उपरोक्त क्वेरी निष्पादित होती है, तो यह निम्न आउटपुट का उत्पादन करती है।
[
[
{
"familyName": "Wakefield",
"givenName": "Robin"
},
{
"familyName": "Miller",
"givenName": "Ben"
}
],
[
{
"familyName": "Smith",
"givenName": "James"
},
{
"familyName": "Curtis",
"givenName": "Helen"
}
],
[
{
"firstName": "Thomas",
"relationship": "father"
},
{
"firstName": "Mary Kay",
"relationship": "mother"
}
]
]
जैसा कि उपरोक्त आउटपुट में देखा जा सकता है, प्रत्येक परिवार के माता-पिता एक अलग JSON सरणी में प्रदर्शित होते हैं।
आइए एक ही उदाहरण पर एक नज़र डालते हैं, हालांकि इस बार हम IN कीवर्ड का उपयोग FROM क्लॉज़ में करेंगे।
निम्नलिखित वह क्वेरी है जिसमें IN कीवर्ड होता है।
SELECT *
FROM c IN Families.parents
जब उपरोक्त क्वेरी निष्पादित होती है, तो यह निम्न आउटपुट का उत्पादन करती है।
[
{
"familyName": "Wakefield",
"givenName": "Robin"
},
{
"familyName": "Miller",
"givenName": "Ben"
},
{
"familyName": "Smith",
"givenName": "James"
},
{
"familyName": "Curtis",
"givenName": "Helen"
},
{
"firstName": "Thomas",
"relationship": "father"
},
{
"firstName": "Mary Kay",
"relationship": "mother"
}
{
"id": "WakefieldFamily",
"givenName": "Jesse",
"grade": 6
}
]
उपरोक्त उदाहरण में, यह देखा जा सकता है कि पुनरावृत्ति के साथ, संग्रह में माता-पिता पर पुनरावृत्ति करने वाली क्वेरी में अलग-अलग आउटपुट सरणी होती है। इसलिए, प्रत्येक परिवार के सभी माता-पिता एक ही सरणी में जुड़ जाते हैं।