Dokumen ini diterjemahkan oleh AI. Untuk ketidakakuratan apa pun, silakan lihat versi bahasa Inggris
Pada objek koleksi tertentu, Anda dapat memperoleh objek Repositori-nya untuk melakukan operasi baca dan tulis pada koleksi tersebut.
Pada objek Repositori, panggil metode terkait find* untuk melakukan operasi kueri. Semua metode kueri mendukung parameter filter untuk memfilter data.
Parameter filter dalam Repositori juga menyediakan berbagai operator untuk melakukan operasi kueri yang lebih beragam.
Untuk informasi lebih lanjut tentang operator, silakan lihat Operator Filter.
Saat melakukan operasi kueri, Anda dapat mengontrol bidang keluaran melalui parameter fields, except, dan appends.
fields: Tentukan bidang keluaranexcept: Kecualikan bidang keluaranappends: Tambahkan bidang terkait ke keluaranParameter filter mendukung pemfilteran berdasarkan bidang asosiasi, misalnya:
Bidang asosiasi juga dapat disarangkan.
Anda dapat mengurutkan hasil kueri menggunakan parameter sort.
Anda juga dapat mengurutkan berdasarkan bidang objek terkait.
Buat objek data baru melalui Repositori.
Saat membuat, Anda juga dapat membuat objek terkait secara bersamaan. Serupa dengan kueri, penggunaan objek terkait yang bersarang juga didukung, misalnya:
Jika objek terkait sudah ada di database, Anda dapat meneruskan ID-nya. Saat pembuatan, asosiasi akan dibuat dengan objek terkait tersebut.
Setelah mendapatkan objek data, Anda dapat langsung memodifikasi propertinya pada objek data (Model), lalu panggil metode save untuk menyimpan perubahan.
Objek data Model mewarisi dari Sequelize Model. Untuk operasi pada Model, silakan lihat Sequelize Model.
Anda juga dapat memperbarui data melalui Repositori:
Saat memperbarui, Anda dapat mengontrol bidang mana yang diperbarui menggunakan parameter whitelist dan blacklist, misalnya:
Saat memperbarui, Anda dapat mengatur objek terkait, misalnya:
Anda dapat memanggil metode destroy() di Repositori untuk melakukan operasi penghapusan. Anda perlu menentukan kriteria filter saat menghapus:
Biasanya tidak dipanggil langsung oleh pengembang. Ini terutama diinstansiasi setelah mendaftarkan tipe melalui db.registerRepositories() dan menentukan tipe repositori terdaftar yang sesuai dalam parameter db.collection().
Tanda Tangan
constructor(collection: Collection)Contoh
databaseInstans manajemen database dari konteks.
collectionInstans manajemen koleksi yang sesuai.
modelKelas model yang sesuai.
find()Mengueri kumpulan data dari database, memungkinkan penentuan kondisi filter, pengurutan, dll.
Tanda Tangan
async find(options?: FindOptions): Promise<Model[]>Tipe
Detail
filter: FilterKondisi kueri, digunakan untuk memfilter hasil data. Dalam parameter kueri yang diteruskan, key adalah nama bidang yang akan dikueri, dan value dapat berupa nilai yang akan dikueri atau digunakan dengan operator untuk pemfilteran data bersyarat lainnya.
Untuk operator lebih lanjut, silakan lihat Operator Kueri.
filterByTk: TargetKeyMengueri data berdasarkan TargetKey, yang merupakan metode praktis untuk parameter filter. Bidang spesifik untuk TargetKey dapat dikonfigurasi dalam koleksi, secara default adalah primaryKey.
fields: string[]Kolom kueri, digunakan untuk mengontrol hasil bidang data. Setelah meneruskan parameter ini, hanya bidang yang ditentukan yang akan dikembalikan.
except: string[]Kolom yang dikecualikan, digunakan untuk mengontrol hasil bidang data. Setelah meneruskan parameter ini, bidang yang diteruskan tidak akan dikeluarkan.
appends: string[]Kolom tambahan, digunakan untuk memuat data terkait. Setelah meneruskan parameter ini, bidang asosiasi yang ditentukan juga akan dikeluarkan.
sort: string[] | stringMenentukan metode pengurutan untuk hasil kueri. Parameternya adalah nama bidang, yang secara default adalah urutan naik asc. Untuk urutan turun desc, tambahkan simbol - sebelum nama bidang, misalnya, ['-id', 'name'], yang berarti urutkan berdasarkan id desc, name asc.
limit: numberMembatasi jumlah hasil, sama dengan limit dalam SQL.
offset: numberOffset kueri, sama dengan offset dalam SQL.
Contoh
findOne()Mengueri satu data dari database yang memenuhi kriteria tertentu. Setara dengan Sequelize 中的 Model.findOne().
Tanda Tangan
async findOne(options?: FindOneOptions): Promise<Model | null>Contoh
count()Mengueri jumlah total entri data yang memenuhi kriteria tertentu dari database. Setara dengan Sequelize 中的 Model.count().
Tanda Tangan
count(options?: CountOptions): Promise<number>Tipe
Contoh
findAndCount()Mengueri kumpulan data dan jumlah total hasil yang memenuhi kriteria tertentu dari database. Setara dengan Sequelize 中的 Model.findAndCountAll().
Tanda Tangan
async findAndCount(options?: FindAndCountOptions): Promise<[Model[], number]>Tipe
Detail
Parameter kueri sama dengan find(). Nilai kembalian adalah sebuah array di mana elemen pertama adalah hasil kueri dan elemen kedua adalah jumlah total.
create()Memasukkan catatan baru ke dalam koleksi. Setara dengan Sequelize 中的 Model.create(). Ketika objek data yang akan dibuat membawa informasi tentang bidang relasi, catatan data relasi yang sesuai juga akan dibuat atau diperbarui.
Tanda Tangan
async create<M extends Model>(options: CreateOptions): Promise<M>Contoh
createMany()Memasukkan beberapa catatan baru ke dalam koleksi. Setara dengan memanggil metode create() beberapa kali.
Tanda Tangan
createMany(options: CreateManyOptions): Promise<Model[]>Tipe
Detail
records: Sebuah array objek data untuk catatan yang akan dibuat.transaction: Objek transaksi. Jika tidak ada parameter transaksi yang diteruskan, metode ini akan secara otomatis membuat transaksi internal.Contoh
update()Memperbarui data dalam koleksi. Setara dengan Sequelize 中的 Model.update(). Ketika objek data yang akan diperbarui membawa informasi tentang bidang relasi, catatan data relasi yang sesuai juga akan dibuat atau diperbarui.
Tanda Tangan
async update<M extends Model>(options: UpdateOptions): Promise<M>Contoh
destroy()Menghapus data dari koleksi. Setara dengan Sequelize 中的 Model.destroy().
Tanda Tangan
async destory(options?: TargetKey | TargetKey[] | DestoryOptions): Promise<number>Tipe
Detail
filter: Menentukan kondisi filter untuk catatan yang akan dihapus. Untuk penggunaan Filter yang lebih detail, lihat metode find().filterByTk: Menentukan kondisi filter untuk catatan yang akan dihapus berdasarkan TargetKey.truncate: Apakah akan mengosongkan data koleksi, efektif ketika tidak ada parameter filter atau filterByTk yang diteruskan.transaction: Objek transaksi. Jika tidak ada parameter transaksi yang diteruskan, metode ini akan secara otomatis membuat transaksi internal.