nodejs mongodb mongoose crud | java php laravel linux mysql sql bootstrap html css query java php laravel linux mysql sql bootstrap html css query: nodejs mongodb mongoose crud

Saturday, May 30, 2026

nodejs mongodb mongoose crud

📚 Seri Belajar Node.js — Artikel 9 dari 16

Lebih Modern dengan MongoDB — Koneksi, CRUD, dan Mongoose sebagai ODM

Tinggalkan tabel SQL yang kaku. Saatnya kamu kenalan dengan database NoSQL paling populer di dunia Node.js — MongoDB — lengkap dengan operasi CRUD dan Mongoose ODM yang elegan.

#NodeJS #MongoDB #MongooseODM #CRUD #ZeroToZorro
⏱️
Estimasi Baca
12 Menit
🎯
Level
Pemula → Menengah
📅
Tahun
2026

Pernah nggak kamu frustrasi bikin tabel di MySQL setiap kali ada perubahan struktur data? Tambah kolom satu, migration dulu, update semua query, dan tiba-tiba semuanya error. Nyebelin banget, kan? Nah, di sinilah Node.js MongoDB hadir sebagai angin segar. MongoDB menyimpan data dalam format dokumen JSON yang fleksibel — nggak ada tabel, nggak ada kolom kaku, nggak ada drama migration.

Di artikel ke-9 dari Seri Belajar Node.js ini, kamu akan belajar cara koneksi ke MongoDB, melakukan operasi CRUD MongoDB Node.js dari nol, sampai pakai Mongoose ODM untuk membuat kode yang lebih terstruktur dan elegan. Siap? Kita mulai!

🍃 Formula Konsep

MongoDB = Database berbasis Dokumen JSON

MongoDB bukan database relasional. Data disimpan sebagai dokumen BSON (Binary JSON) di dalam collection — bayangkan seperti folder berisi file JSON. Setiap dokumen bisa punya struktur berbeda tanpa perlu mendefinisikan schema terlebih dahulu.

SQL → Table
Row, Column
MongoDB → Collection
Document, Field

Kenapa Node.js MongoDB Jadi Kombinasi Favorit Developer?

Bayangkan MongoDB seperti laci arsip yang super fleksibel. Di MySQL, kamu harus bikin laci (tabel) dengan ukuran yang sudah ditentukan sejak awal. Di MongoDB, kamu bisa taruh dokumen apapun ke dalam satu laci — ada yang punya 3 field, ada yang punya 15 field — dan semuanya fine-fine aja.

Node.js dan MongoDB cocok banget karena keduanya "berbicara" dalam JavaScript dan JSON. Data dari frontend, diproses di Node.js, disimpan ke MongoDB — semuanya dalam format yang sama. Tidak ada translasi, tidak ada overhead konversi.

Fitur MySQL (SQL) MongoDB (NoSQL)
Struktur Data Tabel kaku (baris & kolom) Dokumen JSON fleksibel
Schema Wajib didefinisikan Opsional (schema-less)
Query Language SQL JavaScript/JSON
Skalabilitas Vertical scaling Horizontal scaling mudah
Cocok untuk Data relasional terstruktur Data dinamis, real-time, JSON
🔥
Fakta Menarik

MongoDB adalah database NoSQL paling populer di dunia selama bertahun-tahun berturut-turut, dan digunakan oleh perusahaan seperti Forbes, eBay, Adobe, dan Google. Stack MEAN (MongoDB, Express, Angular, Node.js) dan MERN (dengan React) menjadi blueprint aplikasi modern yang paling banyak dipakai startup.

Koneksi Node.js ke MongoDB dengan Mongoose ODM

Sebelum bisa operasi apapun, kamu perlu koneksi ke MongoDB. Ada dua cara: pakai native MongoDB driver, atau pakai Mongoose ODM (Object Data Modeling). Kita pilih Mongoose karena lebih developer-friendly — ada schema validation, middleware, dan banyak fitur keren lainnya.

Mongoose itu ibarat "penerjemah profesional" antara Node.js dan MongoDB. Kamu define schema-nya, Mongoose yang ngurusin sisanya.

1

Install Mongoose via npm

Buka terminal di folder project Node.js kamu dan jalankan perintah berikut.

npm install mongoose
2

Buat file koneksi db.js

Pisahkan konfigurasi koneksi ke file tersendiri agar kode lebih rapi.

// db.js
const mongoose = require('mongoose');

const connectDB = async () => {
  try {
    await mongoose.connect('mongodb://localhost:27017/belajar_nodejs');
    console.log('✅ MongoDB terhubung!');
  } catch (error) {
    console.error('❌ Gagal koneksi:', error.message);
    process.exit(1);
  }
};

module.exports = connectDB;
3

Buat Schema & Model dengan Mongoose

Schema adalah "blueprint" dokumen MongoDB kamu. Di sini kita buat model Produk sebagai contoh.

// models/Produk.js
const mongoose = require('mongoose');

const produkSchema = new mongoose.Schema({
  nama: { type: String, required: true },
  harga: { type: Number, required: true },
  stok: { type: Number, default: 0 },
  kategori: String,
  createdAt: { type: Date, default: Date.now }
});

module.exports = mongoose.model('Produk', produkSchema);
💡
Tips Pro

Untuk project produksi, simpan URI MongoDB di file .env dan akses via process.env.MONGO_URI. Jangan pernah hardcode credential di kode — ini kebiasaan profesional yang wajib kamu tanamkan dari sekarang!

Operasi CRUD MongoDB Node.js: Create, Read, Update, Delete

Inilah jantung dari semua aplikasi database — operasi CRUD. Dengan Mongoose, setiap operasi terasa intuitif dan mirip JavaScript biasa. Mari kita bedah satu per satu.

Insight Penting

Semua operasi Mongoose bersifat asynchronous — selalu gunakan async/await atau .then()/.catch(). Kode yang tidak menangani async dengan benar adalah sumber bug paling umum bagi pemula.

C

CREATE — Tambah Data Baru

const Produk = require('./models/Produk');

// Cara 1: new + save()
const produkBaru = new Produk({
  nama: 'Laptop Gaming',
  harga: 15000000,
  stok: 10,
  kategori: 'Elektronik'
});
await produkBaru.save();

// Cara 2: create() — lebih ringkas
const produk = await Produk.create({
  nama: 'Mouse Wireless', harga: 350000
});
R

READ — Ambil Data dari Database

// Ambil semua produk
const semuaProduk = await Produk.find();

// Cari berdasarkan kondisi
const elektronik = await Produk.find({ kategori: 'Elektronik' });

// Ambil satu dokumen berdasarkan ID
const satuproduk = await Produk.findById('60d5ec49...');

// Filter harga, sort, dan limit
const mahal = await Produk
  .find({ harga: { $gte: 1000000 } })
  .sort({ harga: -1 })
  .limit(5);
U

UPDATE — Perbarui Data yang Ada

// Update berdasarkan ID
await Produk.findByIdAndUpdate(
  '60d5ec49...',
  { $set: { harga: 14500000, stok: 8 } },
  { new: true } // kembalikan dokumen setelah update
);

// Update banyak dokumen sekaligus
await Produk.updateMany(
  { kategori: 'Elektronik' },
  { $inc: { harga: 50000 } } // naikkan harga 50rb
);
D

DELETE — Hapus Data dari Database

// Hapus berdasarkan ID
await Produk.findByIdAndDelete('60d5ec49...');

// Hapus berdasarkan kondisi
await Produk.deleteMany({ stok: 0 });

// Hapus satu dokumen berdasarkan filter
await Produk.deleteOne({ nama: 'Mouse Wireless' });
⚠️
Perhatian!

Hati-hati dengan deleteMany({}) tanpa filter — ini akan menghapus semua dokumen dalam collection! Selalu double-check kondisi filter sebelum menjalankan perintah delete atau update massal.

Mengapa Mongoose ODM Lebih Direkomendasikan untuk Node.js?

Kamu mungkin bertanya — kalau MongoDB sudah punya native driver sendiri (mongodb npm package), kenapa masih perlu Mongoose? Jawabannya sederhana: Mongoose ODM menambahkan lapisan abstraksi yang membuat hidup kamu jauh lebih mudah, terutama di project yang besar dan kompleks.

🔍 Analisis: Mongoose vs MongoDB Native Driver

MongoDB Native Driver
  • Kontrol penuh, performa optimal
  • Tidak ada schema validation bawaan
  • Tidak ada middleware/hooks
  • Cocok untuk use case sangat spesifik
  • Kode lebih verbose dan manual
✨ Rekomendasi
Mongoose ODM
  • Schema validation otomatis
  • Middleware (pre/post hooks) powerful
  • Virtual fields & computed properties
  • Populate (relasi antar collection)
  • API bersih dan developer-friendly
Insight: Fitur Mongoose yang Wajib Kamu Tahu

Mongoose punya fitur populate() yang memungkinkan kamu melakukan "join" antar collection — sesuatu yang perlu ditulis manual di native driver. Selain itu, pre/post hooks memungkinkan kamu menjalankan fungsi otomatis sebelum atau sesudah operasi save, find, delete, dll. — sempurna untuk hashing password sebelum disimpan!

// Contoh pre-save hook: hash password otomatis
userSchema.pre('save', async function(next) {
  if (this.isModified('password')) {
    this.password = await bcrypt.hash(this.password, 10);
  }
  next();
});
📚

Seri Belajar Node.js: Node.js from Zero to Zorro

Artikel ini adalah bagian ke-9 dari 16 artikel seri lengkap belajar Node.js dari nol hingga mahir. Cek daftar isi lengkapnya di sini:

📖 Lihat Daftar Isi Lengkap →
🎯 Kesimpulan

Kamu Sudah Satu Langkah Lebih Modern!

Di artikel ini, kamu telah mempelajari fondasi penting penggunaan Node.js MongoDB: mulai dari memahami perbedaan SQL vs NoSQL, mengkoneksikan project ke MongoDB menggunakan Mongoose ODM, mendefinisikan schema & model yang terstruktur, hingga menjalankan operasi lengkap CRUD MongoDB Node.js — Create, Read, Update, dan Delete.

✅ Poin yang sudah kamu kuasai:
🍃 Konsep MongoDB & NoSQL
🔌 Koneksi via Mongoose
📐 Schema & Model definition
✍️ Create & Read operasi
🔄 Update dengan operator
🗑️ Delete dokumen

Artikel selanjutnya kita akan naik level — bahas cara mengamankan API kamu dengan JWT (JSON Web Token). Jangan sampai ketinggalan!

Artikel ini bermanfaat? 👇

Tinggalkan komentar di bawah — share pengalamanmu pakai MongoDB, atau kalau ada yang masih bikin bingung, tanya langsung! Dan kalau artikel ini berguna, share ke teman-teman kamu yang lagi belajar Node.js. Bantu mereka juga naik level! 🚀

🏷️ Tags Artikel
#BelajarNodeJS #ZeroToZorro #NodeJSMongoDB #MongooseODM #CRUDMongoDB #NoSQL #WebDevelopment #BackendDeveloper

No comments:

Post a Comment

saifiahmada.com adalah blog belajar programming Indonesia, membahas lengkap materi bahasa pemrograman: code HTML, CSS, Bootstrap, Desain, PHP, MySQL, coding Java, Query, SQL, dan dunia linux