MongoDB Database NoSQL untuk Aplikasi Modern

MongoDB
Spread the love

MongoDB merupakan salah satu database NoSQL yang paling populer dan banyak digunakan oleh developer di seluruh dunia. Sebagai database berorientasi dokumen, Mongo DB menyediakan fleksibilitas dalam penyimpanan dan pengelolaan data yang lebih dinamis dibandingkan dengan sistem manajemen database relasional (RDBMS) tradisional.

Apa Itu MongoDB?

Mongo DB adalah sistem database NoSQL yang tidak menggunakan tabel dan skema tetap seperti yang ada pada SQL. Sebaliknya, Mongo DB menggunakan struktur seperti JSON dengan skema yang dinamis (Mongo DB menyebut format ini sebagai BSON), membuat integrasi data di aplikasi tertentu menjadi lebih mudah dan cepat.

Keuntungan MongoDB

  • Skema yang Fleksibel: Tidak memerlukan skema yang tetap, sehingga dapat menyimpan data dengan berbagai tipe dan struktur.
  • Skalabilitas: MongoDB dirancang untuk mudah di-scale out, dengan dukungan untuk sharding dan replikasi.
  • Pengembangan Cepat: API yang mudah dan skema dinamis mempercepat proses pengembangan.
  • Dukungan Kuat untuk Kueri: Mendukung kueri yang kaya dan beragam, termasuk pencarian teks lengkap dan agregasi.
  • Performa Tinggi: Optimasi penyimpanan dan pengambilan data dengan indeks yang mendukung kecepatan tinggi dalam pengolahan query.

Jenis-Jenis Data dalam MongoDB

MongoDB menyimpan data dalam format dokumen BSON, yang mendukung berbagai tipe data, termasuk:

String
Integer
Boolean
Double
Arrays
Object
Null
Date
Object ID (digunakan untuk identifikasi unik dokumen)

Contoh Penggunaan MongoDB

Berikut adalah contoh dasar menggunakan MongoDB dalam JavaScript dengan Node.js menggunakan driver MongoDB resmi.

Koneksi ke MongoDB

javascript
const { MongoClient } = require(‘mongodb’);

async function main(){
const uri = “mongodb+srv://<username>:<password>@<your-cluster>.mongodb.net/”;
const client = new MongoClient(uri);

try {
await client.connect();
console.log(“Connected to MongoDB”);
} catch (e) {
console.error(e);
} finally {
await client.close();
}
}

main().catch(console.error);

Menambahkan Dokumen ke Koleksi

javascript
async function createListing(client, newListing){
const result = await client.db(“sample_airbnb”).collection(“listingsAndReviews”).insertOne(newListing);
console.log(`New listing created with the following id: ${result.insertedId}`);
}

// Objek dokumen yang akan ditambahkan
const newListing = {
name: “Lovely Loft”,
summary: “A charming loft in Paris”,
bedrooms: 1,
bathrooms: 1
};

createListing(client, newListing);

Membaca Dokumen dari Koleksi

javascript
async function findOneListingByName(client, nameOfListing) {
const result = await client.db(“sample_airbnb”).collection(“listingsAndReviews”).findOne({ name: nameOfListing });

if (result) {
console.log(`Found a listing in the collection with the name ‘${nameOfListing}’:`);
console.log(result);
} else {
console.log(`No listings found with the name ‘${nameOfListing}’`);
}
}

findOneListingByName(client, “Lovely Loft”);

Memperbarui Dokumen

javascript
async function updateListingByName(client, nameOfListing, updatedListing) {
const result = await client.db(“sample_airbnb”).collection(“listingsAndReviews”).updateOne({ name: nameOfListing }, { $set: updatedListing });

console.log(`${result.matchedCount} document(s) matched the query criteria.`);
console.log(`${result.modifiedCount} document(s) was/were updated.`);
}

const updatedListing = {
bedrooms: 2,
bathrooms: 2
};

updateListingByName(client, “Lovely Loft”, updatedListing);

Menghapus Dokumen

javascript
async function deleteListingByName(client, nameOfListing) {
const result = await client.db(“sample_airbnb”).collection(“listingsAndReviews”).deleteOne({ name: nameOfListing });

console.log(`${result.deletedCount} document(s) was/were deleted.`);
}

deleteListingByName(client, “Lovely Loft”);

Kesimpulan

Dalam kesimpulan, merupakan database yang sangat mumpuni untuk aplikasi modern yang memerlukan database dengan performa tinggi, dapat diskalakan, dan mempunyai skema yang dapat diadaptasi dengan mudah sesuai dengan kebutuhan yang terus berkembang.