Mongoose ODM atau Driver Native
Driver native MongoDB memberimu kendali penuh dan tidak memaksakan struktur apa pun, sedangkan Mongoose menambahkan lapisan skema di sisi aplikasi: tipe bidang, nilai wajib, nilai bawaan, dan validasi sebelum data masuk. Untuk tim yang datanya harus konsisten, Mongoose menghemat banyak bug karena dokumen tanpa bidang wajib langsung ditolak. Harganya adalah satu lapisan abstraksi tambahan yang harus dipahami, dan sedikit beban performa. Ingat bahwa skema Mongoose hanya berlaku lewat aplikasimu — siapa pun yang menulis langsung ke database tetap bisa melewatinya.
👀 Contoh dulu
const UserSchema = new mongoose.Schema({
email: { type: String, required: true },
});Hasilnya: Dokumen tanpa bidang email ditolak sebelum dikirim ke MongoDB: ValidationError: email is required.
📝 Sekarang giliranmu
Buat skema Mongoose bernama ProductSchema dengan dua bidang: title bertipe String dan wajib diisi (required: true), serta price bertipe Number.