BATAS OFFSET (kueri NoSQL)
BERLAKU UNTUK: NoSQL
Klausa OFFSET LIMIT
adalah klausul opsional untuk dilewati lalu mengambil beberapa nilai dari kueri. Jumlah OFFSET
dan LIMIT
jumlah diperlukan dalam klausul BATAS OFFSET.
Ketika OFFSET LIMIT
digunakan dengan klausul ORDER BY
, tataan hasil dihasilkan dengan melakukan skip dan mengambil nilai yang diurutkan. Jika tidak ada ORDER BY
klausa yang digunakan, itu menghasilkan urutan nilai deterministik.
Sintaks
OFFSET <offset_amount> LIMIT <limit_amount>
Argumen
Deskripsi | |
---|---|
<offset_amount> |
Menentukan jumlah bilangan bulat item yang harus dilewati hasil kueri. |
<limit_amount> |
Menentukan jumlah bilangan bulat item yang harus disertakan oleh hasil kueri. |
Contoh
Untuk contoh di bagian ini, kumpulan referensi item ini digunakan. Setiap item menyertakan name
properti.
[
{
"name": "Sawyer Miller",
"team": "Leadership team"
},
{
"name": "Jennifer Wilkins",
"team": "Leadership team"
},
{
"name": "Hannah Haynes",
"team": "Leadership team"
},
{
"name": "Isaac Talbot",
"team": "Leadership team"
},
{
"name": "Riley Johnson",
"team": "Leadership team"
}
]
Catatan
Dalam data JSON asli, item tidak diurutkan.
Contoh pertama menyertakan kueri yang hanya name
mengembalikan properti dari semua item yang diurutkan dalam urutan alfabet.
SELECT VALUE {
name: e.name
}
FROM
employees e
WHERE
e.team = "Leadership team"
ORDER BY
e.name
[
{
"name": "Hannah Haynes"
},
{
"name": "Isaac Talbot"
},
{
"name": "Jennifer Wilkins"
},
{
"name": "Riley Johnson"
},
{
"name": "Sawyer Miller"
}
]
Contoh berikutnya ini mencakup kueri menggunakan OFFSET LIMIT
klausul untuk melewati item pertama. Batas diatur ke jumlah item dalam kontainer untuk mengembalikan semua kemungkinan nilai yang tersisa. Dalam contoh ini, kueri melewati satu item, dan mengembalikan empat yang tersisa (dari batas lima).
SELECT VALUE {
name: e.name
}
FROM
employees e
WHERE
e.team = "Leadership team"
ORDER BY
e.name
OFFSET 1 LIMIT 5
[
{
"name": "Isaac Talbot"
},
{
"name": "Jennifer Wilkins"
},
{
"name": "Riley Johnson"
},
{
"name": "Sawyer Miller"
}
]
Contoh akhir ini mencakup kueri menggunakan OFFSET LIMIT
klausul untuk mengembalikan subset item yang cocok dengan melewati satu item dan mengambil tiga item berikutnya.
SELECT VALUE {
name: e.name
}
FROM
employees e
WHERE
e.team = "Leadership team"
ORDER BY
e.name
OFFSET 1 LIMIT 3
[
{
"name": "Isaac Talbot"
},
{
"name": "Jennifer Wilkins"
},
{
"name": "Riley Johnson"
}
]
Keterangan
- Baik hitungan
OFFSET
maupun hitunganLIMIT
diperlukan dalam klausulOFFSET LIMIT
. Jika klausulORDER BY
opsional digunakan, kumpulan hasil dihasilkan dengan melakukan melewati nilai yang diurutkan. Jika tidak, kueri mengembalikan urutan nilai tetap. - Biaya RU kueri dengan
OFFSET LIMIT
peningkatan saat jumlah istilah yang diimbangi meningkat. Untuk kueri yang memiliki beberapa halaman hasil, kami biasanya merekomendasikan menggunakan token berkelanjutan. Token berkelanjutan adalah "marka buku" untuk tempat kueri nantinya dapat dilanjutkan. Jika Anda menggunakanOFFSET LIMIT
, tidak ada "marka buku." Jika Anda ingin mengembalikan halaman kueri berikutnya, Anda harus memulai dari awal. - Anda harus menggunakan
OFFSET LIMIT
saat Anda ingin melewatkan item sepenuhnya dan menyimpan sumber daya klien. Misalnya, Anda harus menggunakanOFFSET LIMIT
jika ingin melompat ke hasil kueri ke-1000 dan tidak perlu menampilkan hasil 1 hingga 999. Pada backend,OFFSET LIMIT
masih memuat setiap item, termasuk item yang dilewati. Keuntungan performa diukur dalam mengurangi sumber daya klien dengan menghindari pemrosesan item yang tidak diperlukan.