Dokumen ini diterjemahkan oleh AI. Untuk ketidakakuratan apa pun, silakan lihat versi bahasa Inggris
Koleksi digunakan untuk mendefinisikan model data dalam sistem, seperti nama model, bidang (field), indeks, relasi, dan informasi lainnya.
Umumnya, ini dipanggil melalui metode collection dari sebuah instans Database sebagai titik masuk perantara.
Untuk jenis bidang (field) lainnya, silakan lihat Bidang.
Tanda Tangan (Signature)
constructor(options: CollectionOptions, context: CollectionContext)Parameter
| Parameter | Tipe | Nilai Default | Deskripsi |
|---|---|---|---|
options.name | string | - | Pengidentifikasi koleksi |
options.tableName? | string | - | Nama tabel database. Jika tidak disediakan, nilai dari options.name akan digunakan. |
options.fields? | FieldOptions[] | - | Definisi bidang (field). Lihat Bidang untuk detailnya. |
options.model? | string | ModelStatic<Model> | - | Tipe Model Sequelize. Jika menggunakan string, nama model harus sudah didaftarkan sebelumnya pada db. |
options.repository? | string | RepositoryType | - | Tipe repositori data. Jika menggunakan string, tipe repositori harus sudah didaftarkan sebelumnya pada db. |
options.sortable? | string | boolean | { name?: string; scopeKey?: string } | - | Konfigurasi bidang (field) yang dapat diurutkan. Secara default, tidak diurutkan. |
options.autoGenId? | boolean | true | Apakah akan secara otomatis menghasilkan kunci primer unik. Defaultnya adalah true. |
context.database | Database | - | Database dalam konteks saat ini. |
Contoh
Membuat sebuah koleksi postingan:
optionsParameter konfigurasi awal untuk koleksi. Sama dengan parameter options pada konstruktor.
contextKonteks tempat koleksi saat ini berada, saat ini terutama adalah instans database.
nameNama koleksi.
dbInstans database tempatnya berada.
filterTargetKeyNama bidang (field) yang digunakan sebagai kunci primer.
isThroughApakah ini adalah koleksi perantara (through collection).
modelMencocokkan tipe Model Sequelize.
repositoryInstans repositori data.
getField()Mendapatkan objek bidang (field) dengan nama yang sesuai yang telah didefinisikan dalam koleksi.
Tanda Tangan (Signature)
getField(name: string): FieldParameter
| Parameter | Tipe | Nilai Default | Deskripsi |
|---|---|---|---|
name | string | - | Nama bidang (field) |
Contoh
setField()Mengatur sebuah bidang (field) untuk koleksi.
Tanda Tangan (Signature)
setField(name: string, options: FieldOptions): FieldParameter
| Parameter | Tipe | Nilai Default | Deskripsi |
|---|---|---|---|
name | string | - | Nama bidang (field) |
options | FieldOptions | - | Konfigurasi bidang (field). Lihat Bidang untuk detailnya. |
Contoh
setFields()Mengatur beberapa bidang (field) secara massal untuk koleksi.
Tanda Tangan (Signature)
setFields(fields: FieldOptions[], resetFields = true): Field[]Parameter
| Parameter | Tipe | Nilai Default | Deskripsi |
|---|---|---|---|
fields | FieldOptions[] | - | Konfigurasi bidang (field). Lihat Bidang untuk detailnya. |
resetFields | boolean | true | Apakah akan mereset bidang (field) yang sudah ada. |
Contoh
removeField()Menghapus objek bidang (field) dengan nama yang sesuai yang telah didefinisikan dalam koleksi.
Tanda Tangan (Signature)
removeField(name: string): void | FieldParameter
| Parameter | Tipe | Nilai Default | Deskripsi |
|---|---|---|---|
name | string | - | Nama bidang (field) |
Contoh
resetFields()Mereset (mengosongkan) bidang (field) dari koleksi.
Tanda Tangan (Signature)
resetFields(): voidContoh
hasField()Memeriksa apakah objek bidang (field) dengan nama yang sesuai telah didefinisikan dalam koleksi.
Tanda Tangan (Signature)
hasField(name: string): booleanParameter
| Parameter | Tipe | Nilai Default | Deskripsi |
|---|---|---|---|
name | string | - | Nama bidang (field) |
Contoh
findField()Mencari objek bidang (field) dalam koleksi yang memenuhi kriteria.
Tanda Tangan (Signature)
findField(predicate: (field: Field) => boolean): Field | undefinedParameter
| Parameter | Tipe | Nilai Default | Deskripsi |
|---|---|---|---|
predicate | (field: Field) => boolean | - | Kriteria pencarian |
Contoh
forEachField()Mengulang objek bidang (field) dalam koleksi.
Tanda Tangan (Signature)
forEachField(callback: (field: Field) => void): voidParameter
| Parameter | Tipe | Nilai Default | Deskripsi |
|---|---|---|---|
callback | (field: Field) => void | - | Fungsi callback |
Contoh
addIndex()Menambahkan indeks ke koleksi.
Tanda Tangan (Signature)
addIndex(index: string | string[] | { fields: string[], unique?: boolean,[key: string]: any })Parameter
| Parameter | Tipe | Nilai Default | Deskripsi |
|---|---|---|---|
index | string | string[] | - | Nama bidang (field) yang akan dikonfigurasi indeksnya. |
index | { fields: string[], unique?: boolean, [key: string]: any } | - | Konfigurasi lengkap. |
Contoh
removeIndex()Menghapus indeks dari koleksi.
Tanda Tangan (Signature)
removeIndex(fields: string[])Parameter
| Parameter | Tipe | Nilai Default | Deskripsi |
|---|---|---|---|
fields | string[] | - | Kombinasi nama bidang (field) untuk indeks yang akan dihapus. |
Contoh
remove()Menghapus koleksi.
Tanda Tangan (Signature)
remove(): voidContoh
sync()Menyinkronkan definisi koleksi ke database. Selain logika default Model.sync di Sequelize, ini juga memproses koleksi yang sesuai dengan bidang (field) relasi.
Tanda Tangan (Signature)
sync(): Promise<void>Contoh
existsInDb()Memeriksa apakah koleksi ada dalam database.
Tanda Tangan (Signature)
existsInDb(options?: Transactionable): Promise<boolean>Parameter
| Parameter | Tipe | Nilai Default | Deskripsi |
|---|---|---|---|
options?.transaction | Transaction | - | Instans transaksi |
Contoh
removeFromDb()Tanda Tangan (Signature)
removeFromDb(): Promise<void>Contoh