DocumentDB SQL - Diğer adlandırma

İlişkisel veritabanlarında, bir tabloyu veya sütun başlığını geçici olarak yeniden adlandırmak için SQL takma adları kullanılır. Benzer şekilde, DocumentDB'de takma adlar bir JSON belgesini, alt belgeyi, nesneyi veya herhangi bir alanı geçici olarak yeniden adlandırmak için kullanılır.

Yeniden adlandırma geçici bir değişikliktir ve asıl belge değişmez. Temel olarak, alan / belge adlarını daha okunaklı hale getirmek için takma adlar oluşturulur. Örtüşme için isteğe bağlı olan AS anahtar sözcüğü kullanılır.

Önceki örneklerde kullanılanlardan üç benzer belgeyi ele alalım.

Aşağıdaki AndersenFamily belge.

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

Aşağıdaki SmithFamily belge.

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

Aşağıdaki WakefieldFamily belge.

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

Takma adları tartışmak için bir örneğe bakalım.

Aşağıda, kökü alt belgeye katacak sorgu yer almaktadır. F.id AS familyName, c.givenName AS childGivenName ve c.firstName AS childFirstName gibi takma adlarımız var.

SELECT  
   f.id AS familyName, 
   c.givenName AS childGivenName, 
   c.firstName AS childFirstName 
FROM Families f  
JOIN c IN f.children

Yukarıdaki sorgu yürütüldüğünde aşağıdaki çıktıyı üretir.

[ 
   { 
      "familyName": "WakefieldFamily", 
      "childGivenName": "Jesse" 
   },
	
   { 
      "familyName": "WakefieldFamily",
	  "childGivenName": "Lisa" 
   },
	
   { 
      "familyName": "SmithFamily", 
      "childGivenName": "Michelle" 
   },
	
   { 
      "familyName": "SmithFamily", 
      "childGivenName": "John" 
   },
	
   { 
      "familyName": "AndersenFamily", 
      "childFirstName": "Henriette Thaulow" 
   } 
]

Yukarıdaki çıktı, dosyalanmış adların değiştirildiğini, ancak bunun geçici bir değişiklik olduğunu ve orijinal belgelerin değiştirilmediğini gösterir.