MongoDB - Urutan Auto-Increment: Panduan untuk Pemula

Halo teman-teman, bakal bintang coding! ? Hari ini, kita akan memulai perjalanan menarik ke dunia MongoDB dan belajar tentang Urutan Auto-Increment. Jangan khawatir jika Anda belum pernah menulis baris kode sebelumnya – saya akan menjadi panduan Anda, dan kita akan berjalan langkah demi langkah. Pada akhir panduan ini, Anda akan terpesona dengan apa yang Anda bisa lakukan!

Auto-Increment Sequence

Apa Itu Urutan Auto-Increment?

Sebelum kita masuk ke detil, mari kita mengerti apa itu Urutan Auto-Increment. Bayangkan Anda mengorganisir pesta besar, dan Anda ingin memberi setiap tamu nomor unik saat mereka tiba. Anda mulai dari 1, kemudian 2, 3, dan seterusnya. Itu sebenarnya apa yang Urutan Auto-Increment lakukan di basis data – secara otomatis memberikan nomor unik, yang dinaikkan, ke setiap rekord baru.

Sekarang, MongoDB tidak memiliki fitur auto-increment bawaan seperti beberapa basis data lain. Tetapi jangan khawatir! Kita akan belajar bagaimana membuat sendiri. Itu seperti menjadi penyihir dan menciptakan mantra sendiri. Keren, kan?

Menggunakan Koleksi Counter

Langkah pertama kita dalam membuat Urutan Auto-Increment adalah menggunakan sesuatu yang disebut Koleksi Counter. Bayangkan ini seperti buku catatan khusus tempat kita mencatat nomor-nomor kita.

Langkah 1: Buat Koleksi Counter

Pertama, kita perlu membuat buku catatan khusus kita. Dalam istilah MongoDB, kita akan membuat koleksi baru yang disebut "counters".

db.createCollection("counters")

Langkah 2: Masukkan Dokumen Counter

Sekarang, mari kita tambahkan halaman ke buku catatan kita untuk urutan tertentu. Kita akan menyebutnya "userId".

db.counters.insert(
{
_id: "userId",
seq: 0
}
)

Ini menciptakan dokumen di koleksi counters. Field _id adalah "userId" (nama urutannya), dan seq adalah 0 (nomor awal).

Langkah 3: Gunakan findAndModify untuk Mendapatkan Urutan Selanjutnya

Ini tempat magik terjadi! Kita akan menggunakan operasi khusus MongoDB yang disebut findAndModify untuk mendapatkan nomor berikutnya di urutan kita.

function getNextSequence(name) {
var ret = db.counters.findAndModify(
{
query: { _id: name },
update: { $inc: { seq: 1 } },
new: true
}
);

return ret.seq;
}

mari kitauraikan ini:

  • query: { _id: name } mencari dokumen "userId".
  • update: { $inc: { seq: 1 } } meningkatkan nilai seq sebesar 1.
  • new: true memberitahu MongoDB untuk mengembalikan dokumen yang diperbarui.

Langkah 4: Gunakan Urutan di Koleksimu

Sekarang, ketika Anda ingin memasukkan pengguna baru dengan ID auto-incrementing, Anda bisa melakukan ini:

db.users.insert(
{
_id: getNextSequence("userId"),
name: "Sarah Connor",
age: 29
}
)

Setiap kali Anda menjalankan ini, itu akan menggunakan ID baru, yang dinaikkan. Magic, kan?

Membuat Fungsi JavaScript

Sekarang kita mengerti dasar-dasar, mari kita buat fungsi JavaScript yang lebih robusta untuk menghandle kebutuhan auto-increment kita.

function getNextSequence(db, sequenceName) {
const sequenceDocument = db.collection("counters").findOneAndUpdate(
{ _id: sequenceName },
{ $inc: { sequence_value: 1 } },
{ returnDocument: "after", upsert: true }
);

return sequenceDocument.sequence_value;
}

Fungsi ini melakukan beberapa hal menarik:

  1. Itu menggunakan findOneAndUpdate, yang seperti findAndModify tapi lebih modern.
  2. Opsi upsert: true berarti itu akan membuat urutan jika itu belum ada.
  3. returnDocument: "after" memastikan kita mendapat nilai yang diperbarui.

Menggunakan Fungsi JavaScript

Sekarang, mari kita gunakan fungsi baru yang berkilau ini!

Contoh 1: Membuat Pengguna Baru

const db = client.db("myDatabase");

const userId = await getNextSequence(db, "userId");
const result = await db.collection("users").insertOne({
_id: userId,
name: "John Doe",
email: "[email protected]"
});

console.log(`Pengguna baru dibuat dengan id: ${userId}`);

Dalam contoh ini, kita membuat pengguna baru dengan ID auto-incrementing. Itu seperti memberikan setiap pengguna baru nomor VIP di pesta kita!

Contoh 2: Membuat Produk Baru

const productId = await getNextSequence(db, "productId");
const result = await db.collection("products").insertOne({
_id: productId,
name: "Gadget Menakjubkan",
price: 99.99
});

console.log(`Produk baru ditambahkan dengan id: ${productId}`);

Lihat bagaimana kita menggunakan fungsi yang sama tetapi dengan nama urutan yang berbeda? Itu seperti memiliki beberapa garis pesta, masing-masing dengan sistem penomoran sendiri!

Bonus: Tabel Metode

Berikut adalah tabel referensi cepat metode yang kita gunakan:

Metode Deskripsi
createCollection Membuat koleksi baru
insert Menyisipkan dokumen baru ke dalam koleksi
findAndModify Mencari dokumen dan memodifikasinya
findOneAndUpdate Versi modern dari findAndModify
insertOne Menyisipkan dokumen tunggal ke dalam koleksi

Kesimpulan

Selamat! Anda baru saja belajar bagaimana membuat dan menggunakan Urutan Auto-Increment di MongoDB. Ingat, itu seperti menjadi pengorganisasi pesta, memastikan setiap orang mendapat nomor unik. Keterampilan ini akan sangat berguna ketika Anda membangun aplikasi yang memerlukan ID unik, yang dinaikkan.

Latihan membuat sempurna, jadi jangan takut untuk mencoba konsep ini. Sebelum Anda tahu, Anda akan membuat operasi basis data kompleks seperti seorang ahli! Terus coding, terus belajar, dan terutama, bersenang-senang! ??‍??‍?

Credits: Image by storyset