View a markdown version of this page

Indeks majemuk - Amazon DocumentDB

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Indeks majemuk

Indeks majemuk menyimpan informasi dari dua bidang atau lebih dalam kumpulan dokumen, memungkinkan kueri pada bidang pertama atau bidang awalan apa pun. Indeks ini mengoptimalkan kinerja untuk kueri yang memfilter beberapa bidang secara bersamaan atau menggabungkan pemfilteran dengan operasi penyortiran. Mereka juga efektif untuk kueri kondisi tunggal pada bidang terindeks paling kiri. Basis data memanfaatkan entri indeks ini untuk secara efisien menemukan dokumen yang cocok tanpa melakukan pemindaian koleksi penuh.

Indeks bidang majemuk bermanfaat ketika:

  • Anda perlu memfilter pada beberapa bidang secara bersamaan.

  • Anda perlu menggabungkan penyaringan dengan operasi penyortiran.

Properti indeks yang didukung

Opsi 3.6 4.0 5.0 8.0 Cluster Elastis
name Ya Ya Ya Ya Ya
unik Ya Ya Ya Ya Ya
jarang * Ya Ya Ya Ya Ya
sebagian FilterExpression * Tidak Tidak Ya Ya Tidak

* partialFilterExpression Opsi sparse dan tidak dapat digunakan bersama dalam definisi indeks yang sama. Jika Anda mencoba membuat indeks dengan opsi ini, itu akan gagal dengan kesalahan berikut:

Error in specification: cannot mix partialFilterExpression and sparse options

Membuat indeks majemuk

Gunakan createIndex() metode untuk membuat indeks majemuk. Sintaks metode adalah: db.collection.createIndex(<keys>, <options>)

keysParameter adalah dokumen JSON yang menentukan bidang dan urutan urutan indeks:

{ "<field 1>": <1 (ascending)|-1 (descending)>, "<field 2>": <1 (ascending)|-1 (descending)>, ... }

Perhatikan bahwa hanya satu bidang yang dapat menjadi array dalam indeks majemuk. Jika Anda mencoba membuat indeks majemuk pada dua atau lebih bidang array, itu akan gagal dengan kesalahan berikut:

multiple fields of compound index cannot be arrays

optionsParameter adalah dokumen JSON yang menentukan opsi untuk indeks:

{ "name": "<name>", "unique": <true | false>, "sparse": <true | false>, "partialFilterExpression": <filter expression> }

Lihat Properti Indeks untuk contoh pembuatan indeks majemuk.