Bagikan melalui


ORDER BY (kueri NoSQL)

BERLAKU UNTUK: NoSQL

Klausul ORDER BY opsional menentukan urutan pengurutan untuk hasil yang dikembalikan oleh kueri.

Sintaks

ORDER BY <sort_specification>  
<sort_specification> ::= <sort_expression> [, <sort_expression>]  
<sort_expression> ::= {<scalar_expression> [ASC | DESC]} [ ,...n ]

Argumen

Deskripsi
<sort_specification> Menentukan properti atau ekspresi tempat mengurutkan kumpulan hasil kueri. Kolom pengurutan dapat ditentukan sebagai alias nama atau alias properti. Beberapa properti dapat ditentukan. Nama properti harus unik. Urutan properti pengurutan dalam klausul ORDER BY menentukan organisasi dari rangkaian hasil yang diurutkan. Artinya, kumpulan hasil diurutkan menurut properti pertama dan kemudian daftar yang diurutkan dipilah menurut properti kedua, dan seterusnya. Nama properti yang direferensikan dalam ORDER BY klausul harus sesuai dengan properti dalam daftar pilih atau properti yang ditentukan dalam kumpulan yang ditentukan dalam FROM klausul tanpa ambiguitas apa pun.
<sort_expression> Menentukan satu atau beberapa properti atau ekspresi untuk mengurutkan kumpulan hasil kueri.
<scalar_expression> Ekspresi yang mewakili nilai yang akan dikomputasi.
ASC atau DESC Menentukan bahwa nilai dalam kolom tertentu harus diurutkan dalam urutan naik atau turun. ASC mengurutkan dari nilai terendah ke nilai tertinggi. DESC mengurutkan dari nilai tertinggi ke nilai terendah. Jika argumen ini tidak ditentukan, ASC (naik) adalah urutan pengurutan default. null nilai diperlakukan sebagai nilai serendah mungkin.

Catatan

Untuk informasi selengkapnya tentang ekspresi skalar, lihat ekspresi skalar

Contoh

Untuk contoh di bagian ini, kumpulan referensi item ini digunakan. Setiap item berisi name properti dengan first dan last subproperti.

[
  {
    "name": {
      "first": "Casey",
      "last": "Jensen"
    },
    "team": "Human resources"
  },
  {
    "name": {
      "first": "Amari",
      "last": "Rivera"
    },
    "team": "Human resources"
  },
  {
    "name": {
      "first": "Kayla",
      "last": "Lewis"
    },
    "team": "Human resources"
  }
]

Dalam contoh pertama ini, ORDER BY klausa digunakan untuk mengurutkan bidang menurut urutan pengurutan default, naik.

SELECT VALUE {
    firstName: e.name.first,
    lastName: e.name.last
}
FROM
    employees e
ORDER BY
    e.name.last
[
  {
    "firstName": "Casey",
    "lastName": "Jensen"
  },
  {
    "firstName": "Kayla",
    "lastName": "Lewis"
  },
  {
    "firstName": "Amari",
    "lastName": "Rivera"
  }
]

Dalam contoh berikutnya ini, urutan pengurutan secara eksplisit ditentukan untuk turun.

SELECT VALUE {
    firstName: e.name.first,
    lastName: e.name.last
}
FROM
    employees e
ORDER BY
    e.name.last DESC
[
  {
    "firstName": "Amari",
    "lastName": "Rivera"
  },
  {
    "firstName": "Kayla",
    "lastName": "Lewis"
  },
  {
    "firstName": "Casey",
    "lastName": "Jensen"
  }
]

Dalam contoh akhir ini, item diurutkan menggunakan dua bidang, dalam urutan tertentu menggunakan pengurutan yang ditentukan secara eksplisit. Kueri yang mengurutkan menggunakan dua bidang atau lebih memerlukan indeks komposit.

SELECT VALUE {
    firstName: e.name.first,
    lastName: e.name.last
}
FROM
    employees e
ORDER BY
    e.name.last DESC,
    e.name.first ASC

Keterangan

  • Kueri dengan ORDER BY mengembalikan semua item, termasuk item di mana properti dalam klausa ORDER BY tidak ditentukan. Biasanya, Anda tidak dapat mengontrol urutan yang muncul dalam hasil yang berbeda undefined . Untuk mengontrol urutan pengurutan nilai yang tidak terdefinisi, tetapkan properti apa pun undefined nilai arbitrer untuk memastikannya mengurutkan baik sebelum atau sesudah nilai yang ditentukan.
  • Klausa ORDER BY mengharuskan kebijakan pengindeksan menyertakan indeks untuk bidang yang sedang diurutkan. Runtime kueri mendukung pengurutan terhadap nama properti atau properti komputasi. Runtime juga mendukung beberapa ORDER BY properti. Untuk menjalankan kueri dengan beberapa ORDER BY properti, tentukan indeks komposit pada bidang yang sedang diurutkan.
  • Jika properti yang sedang diurutkan mungkin undefined untuk beberapa item dan Anda ingin mengambilnya dalam ORDER BY kueri, Anda harus secara eksplisit menyertakan jalur ini dalam indeks. Kebijakan pengindeksan default tidak memungkinkan pengambilan item tempat properti pengurutan adalah undefined.