Memodelkan One-to-Many dan Many-to-Many

Untuk relasi satu-ke-banyak yang jumlahnya sedikit dan tetap — misalnya beberapa nomor telepon milik satu pengguna — array di dalam dokumen induk adalah pilihan paling sederhana dan paling cepat dibaca. Begitu jumlahnya bisa ribuan, pindahkan ke koleksi terpisah dengan penunjuk id. Untuk relasi banyak-ke-banyak, cara paling umum adalah menyimpan array id di salah satu sisi, misalnya daftar id kategori di dokumen produk. Pilihanmu di sini menentukan bentuk query nanti, jadi tentukan setelah tahu pola pembacaan aplikasimu, bukan sebelumnya.

👀 Contoh dulu

// one-to-many kecil: array di dokumen induk
db.user.updateOne(
  { _id: userId },
  { $push: { telepon: '0812-1111-2222' } }
);

Hasilnya: { matchedCount: 1, modifiedCount: 1 }

💡 $addToSet mencegah id yang sama masuk dua kali, sedangkan $push selalu menambah.

📝 Sekarang giliranmu

Satu produk bisa masuk beberapa kategori. Tulis perintah updateOne pada koleksi produk yang menambahkan kategoriId ke array kategori milik dokumen dengan _id: produkId, memakai operator penambah elemen array.

Preview