DocumentDB SQL - Antara Kata Kunci

Kata kunci BETWEEN digunakan untuk mengekspresikan kueri terhadap rentang nilai seperti di SQL. BETWEEN dapat digunakan melawan string atau angka. Perbedaan utama antara menggunakan BETWEEN di DocumentDB dan ANSI SQL adalah Anda dapat mengekspresikan kueri rentang terhadap properti tipe campuran.

Misalnya, di beberapa dokumen ada kemungkinan Anda memiliki "nilai" sebagai angka dan di dokumen lain mungkin berupa string. Dalam kasus ini, perbandingan antara dua jenis hasil yang berbeda "tidak ditentukan", dan dokumen akan dilewati.

Mari kita perhatikan tiga dokumen dari contoh sebelumnya. Berikut ini adalahAndersenFamily dokumen.

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

Berikut ini adalah SmithFamily dokumen.

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

Berikut ini adalah WakefieldFamily dokumen.

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

Mari kita lihat contoh, di mana kueri mengembalikan semua dokumen keluarga yang nilai anak pertamanya antara 1-5 (keduanya inklusif).

Berikut ini adalah kueri di mana kata kunci ANTARA digunakan dan kemudian operator logika AND.

SELECT * 
FROM Families.children[0] c 
WHERE c.grade BETWEEN 1 AND 5

Ketika query di atas dijalankan, itu menghasilkan keluaran sebagai berikut.

[ 
   { 
      "givenName": "Michelle", 
      "gender": "female", 
      "grade": 1 
   }, 
	
   { 
      "firstName": "Henriette Thaulow", 
      "gender": "female", 
      "grade": 5, 
		
      "pets": [ 
         { 
            "givenName": "Fluffy",
            "type": "Rabbit" 
         } 
      ] 
   } 
]

Untuk menampilkan nilai di luar rentang contoh sebelumnya, gunakan TIDAK ANTARA seperti yang ditunjukkan dalam kueri berikut.

SELECT * 
FROM Families.children[0] c 
WHERE c.grade NOT BETWEEN 1 AND 5

Saat kueri ini dijalankan. Ini menghasilkan keluaran sebagai berikut.

[ 
   { 
      "familyName": "Merriam", 
      "givenName": "Jesse", 
      "gender": "female", 
      "grade": 6, 
		
      "pets": [ 
         { 
            "givenName": "Charlie Brown", 
            "type": "Dog" 
         }, 
			
         { 
            "givenName": "Tiger", 
            "type": "Cat" 
         },
			
         {
            "givenName": "Princess", 
            "type": "Cat" 
         } 
      ] 
   }
]