DocumentDB SQL - समग्र SQL क्वेरी
Composite Queryमौजूदा प्रश्नों से डेटा को संयोजित करने में सक्षम बनाता है और फिर रिपोर्ट परिणाम प्रस्तुत करने से पहले फ़िल्टर, समुच्चय, और इसी तरह लागू करता है, जो संयुक्त डेटा सेट को दिखाता है। समग्र क्वेरी मौजूदा प्रश्नों पर संबंधित जानकारी के कई स्तरों को प्राप्त करती है और संयुक्त डेटा को एकल और चपटा क्वेरी परिणाम के रूप में प्रस्तुत करती है।
समग्र क्वेरी का उपयोग करते हुए, आपके पास यह विकल्प भी है -
उपयोगकर्ता की विशेषता चयनों के आधार पर आवश्यक तालिकाओं और फ़ील्ड को निकालने के लिए SQL प्रूनिंग विकल्प का चयन करें।
ORDER BY और GROUP BY क्लॉस सेट करें।
एक समग्र क्वेरी के परिणाम सेट पर फ़िल्टर के रूप में WHERE क्लॉज़ सेट करें।
उपरोक्त ऑपरेटरों को अधिक शक्तिशाली प्रश्न बनाने के लिए तैयार किया जा सकता है। चूंकि डॉक्यूमेंटीडीबी नेस्टेड संग्रह का समर्थन करता है, इसलिए रचना को संक्षिप्त या नेस्टेड किया जा सकता है।
आइए इस उदाहरण के लिए निम्नलिखित दस्तावेजों पर विचार करें।
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
}
आइए संक्षिप्त क्वेरी के उदाहरण पर एक नज़र डालें।

निम्नलिखित क्वेरी है जो उस परिवार की आईडी और स्थान को पुनः प्राप्त करेगी जहां पहला बच्चा है givenName मिशेल है।
SELECT f.id,f.location
FROM Families f
WHERE f.children[0].givenName = "Michelle"
जब उपरोक्त क्वेरी निष्पादित होती है, तो यह निम्न आउटपुट का उत्पादन करती है।
[
{
"id": "SmithFamily",
"location": {
"state": "NY",
"county": "Queens",
"city": "Forest Hills"
}
}
]
आइए, संक्षिप्त क्वेरी का एक और उदाहरण देखें।

निम्नलिखित क्वेरी है जो सभी दस्तावेजों को लौटाएगी जहां पहले बच्चे का ग्रेड 3 से अधिक है।
SELECT *
FROM Families f
WHERE ({grade: f.children[0].grade}.grade > 3)
जब उपरोक्त क्वेरी निष्पादित होती है, तो यह निम्न आउटपुट का उत्पादन करती है।
[
{
"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,
"_rid": "Ic8LAJFujgECAAAAAAAAAA==",
"_ts": 1450541623,
"_self": "dbs/Ic8LAA==/colls/Ic8LAJFujgE=/docs/Ic8LAJFujgECAAAAAAAAAA==/",
"_etag": "\"00000500-0000-0000-0000-567582370000\"",
"_attachments": "attachments/"
},
{
"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,
"_rid": "Ic8LAJFujgEEAAAAAAAAAA==",
"_ts": 1450541624,
"_self": "dbs/Ic8LAA==/colls/Ic8LAJFujgE=/docs/Ic8LAJFujgEEAAAAAAAAAA==/",
"_etag": "\"00000700-0000-0000-0000-567582380000\"",
"_attachments": "attachments/"
}
]
आइए एक नजर डालते हैं example नेस्टेड प्रश्नों का।

निम्नलिखित क्वेरी है जो सभी माता-पिता को पुन: व्यवस्थित करेगी और फिर दस्तावेज़ को वापस कर देगी familyName स्मिथ है।
SELECT *
FROM p IN Families.parents
WHERE p.familyName = "Smith"
जब उपरोक्त क्वेरी निष्पादित होती है, तो यह निम्न आउटपुट का उत्पादन करती है।
[
{
"familyName": "Smith",
"givenName": "James"
}
]
चलो गौर करते हैं another example नेस्टेड क्वेरी की।

निम्नलिखित क्वेरी है जो सभी वापस आ जाएगी familyName।
SELECT VALUE p.familyName
FROM Families f
JOIN p IN f.parents
जब उपरोक्त क्वेरी निष्पादित होती है, तो वह निम्नलिखित आउटपुट का उत्पादन करती है।
[
"Wakefield",
"Miller",
"Smith",
"Curtis"
]