Node.js - MongoDB Query: Panduan untuk Pemula

Hai teman-teman,大师MongoDB budoucy! Saya sangat senang menjadi panduan Anda dalam perjalanan menarik ini ke dunia Node.js dan MongoDB queries. Sebagai seseorang yang telah mengajar ilmu komputer selama bertahun-tahun, saya bisa menjamin Anda bahwa meskipun ini mungkin terlihat menakutkan pada awalnya, kita akan memecahnya menjadi bagian kecil yang bahkan pemula sepenuhnya dapat menangkap. Jadi, ambil minumannya yang favorit, rasa nyaman, dan mari kita masuk ke dalam!

Node.js - MongoDB Query

Mengenal MongoDB dan Node.js

Sebelum kita melompat ke query, mari kitaambil sedikit waktu untuk memahami apa itu MongoDB dan Node.js. Bayangkan MongoDB sebagai lemari berarsip raksasa dan sangat terorganisir tempat Anda dapat menyimpan berbagai jenis informasi. Sedangkan Node.js, adalah seperti seorang asisten yang dapat berbicara dengan lemari berarsip ini, mengambil dan mengubah informasi sesuai kebutuhan.

Menyiapkan Lingkungan Kerja

Pertama-tama, kita perlu mengatur ruang kerja kita. Jangan khawatir; ini lebih mudah daripada mengassembly furniture IKEA! Berikut adalah apa yang Anda butuhkan:

  1. Instal Node.js dari situs resmi.
  2. Instal MongoDB dan mulai server MongoDB.
  3. Buat folder proyek baru dan inisiasikan dengan npm.
  4. Instal pengemudi MongoDB untuk Node.js.

Berikut adalah cuplikan kode untuk memulai:

const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017';
const dbName = 'myProject';

MongoClient.connect(url, function(err, client) {
if (err) throw err;
console.log("Terhubung dengan server secara sukses");
const db = client.db(dbName);
// Kita akan menulis query kita di sini
client.close();
});

Kode ini mengatur koneksi ke server MongoDB kita. Bayangkan ini sebagai membuka pintu ke lemari berarsip kita.

Operator MongoDB: Tongkat Sihir

Sekarang kita sudah terhubung, mari bicarakan tentang operator MongoDB. Ini seperti tongkat sihir yang membantu kita menemukan tepat apa yang kita cari di database kita. Mari kita jelajahi beberapa operator yang biasa digunakan:

Operator Perbandingan

Operator Deskripsi
$eq Cocok nilai yang sama dengan nilai yang ditentukan
$gt Cocok nilai yang lebih besar daripada nilai yang ditentukan
$lt Cocok nilai yang lebih kecil daripada nilai yang ditentukan
$gte Cocok nilai yang lebih besar atau sama dengan nilai yang ditentukan
$lte Cocok nilai yang lebih kecil atau sama dengan nilai yang ditentukan
$ne Cocok semua nilai yang tidak sama dengan nilai yang ditentukan
$in Cocok nilai manapun yang ditentukan dalam array
$nin Cocok nilai yang tidak ada dalam array yang ditentukan

Mari lihat contoh penggunaannya:

// Temukan semua dokumen dimana umur tepat 25
db.collection('users').find({ age: { $eq: 25 } }).toArray((err, result) => {
if (err) throw err;
console.log(result);
});

// Temukan semua dokumen dimana umur lebih besar daripada 30
db.collection('users').find({ age: { $gt: 30 } }).toArray((err, result) => {
if (err) throw err;
console.log(result);
});

// Temukan semua dokumen dimana umur ada dalam array [20, 25, 30]
db.collection('users').find({ age: { $in: [20, 25, 30] } }).toArray((err, result) => {
if (err) throw err;
console.log(result);
});

Dalam contoh ini, kita menggunakan operator berbeda untuk menemukan pengguna berdasarkan umur. Itu seperti meminta lemari berarsip kita untuk memberikan folder yang memenuhi kriteria tertentu.

Operator Logika

Operator Deskripsi
$and Gabungkan klausal query dengan logika AND
$or Gabungkan klausal query dengan logika OR
$not Balikkan efek ekspresi query
$nor Gabungkan klausal query dengan logika NOR

Mari lihat bagaimana kita bisa menggunakannya:

// Temukan pengguna yang berusia lebih dari 30 dan memiliki peran 'developer'
db.collection('users').find({
$and: [
{ age: { $gt: 30 } },
{ role: 'developer' }
]
}).toArray((err, result) => {
if (err) throw err;
console.log(result);
});

// Temukan pengguna yang berusia kurang dari 25 atau lebih dari 60
db.collection('users').find({
$or: [
{ age: { $lt: 25 } },
{ age: { $gt: 60 } }
]
}).toArray((err, result) => {
if (err) throw err;
console.log(result);
});

Operator logika ini memungkinkan kita untuk menggabungkan beberapa kondisi, memberikan kontrol yang lebih tepat atas query kita.

Regex: Pematch Pattern

Sekarang, mari bicarakan tentang sesuatu yang sangat menarik: regex. Regex, singkatan dari regular expressions, adalah seperti fungsi pencarian supercharge. Ini memungkinkan kita mencari pola tertentu dalam data teks kita.

Berikut cara Anda dapat menggunakan regex dalam query MongoDB:

// Temukan semua pengguna yang namanya dimulai dengan 'J'
db.collection('users').find({
name: { $regex: '^J' }
}).toArray((err, result) => {
if (err) throw err;
console.log(result);
});

// Temukan semua pengguna yang emailnya berakhir dengan '@gmail.com', tanpa perhatikan huruf besar kecil
db.collection('users').find({
email: { $regex: '@gmail.com$', $options: 'i' }
}).toArray((err, result) => {
if (err) throw err;
console.log(result);
});

Dalam contoh pertama, '^J' berarti "dimulai dengan J". Dalam yang kedua, '@gmail.com$' berarti "berakhir dengan @gmail.com", dan opsi 'i' membuatnya case-insensitive.

Regex sangat kuat, tetapi juga dapat sulit. Ingat, dengan kekuatan yang besar datang tanggung jawab besar (dan kadang-kadang, kebingungan besar juga!)

Menggabungkan Semua

Sekarang kita telah belajar tentang operator berbeda dan regex, mari gabungkannya dalam query yang lebih kompleks:

db.collection('users').find({
$and: [
{ age: { $gte: 18, $lte: 65 } },
{ email: { $regex: '@gmail.com$', $options: 'i' } },
{ $or: [
{ role: 'developer' },
{ experience: { $gt: 5 } }
]}
]
}).toArray((err, result) => {
if (err) throw err;
console.log(result);
});

Query ini menemukan semua pengguna yang:

  1. Berusia antara 18 dan 65 tahun
  2. Menggunakan email Gmail
  3. Adalah pengembang atau memiliki lebih dari 5 tahun pengalaman

Itu seperti meminta lemari berarsip kita untuk melakukan akrobatik serius!

Kesimpulan

Selamat! Anda telah mengambil langkah pertama ke dunia query MongoDB dengan Node.js. Kita telah meliputi banyak hal, dari perbandingan dasar hingga operasi logika dan bahkan pola regex. Ingat, seperti belajar bahasa baru, latihan membuat sempurna. Jangan takut untuk mencoba query berbeda dan kombinasi operator.

Saat kita selesai, saya teringat tentang seorang murid yang pernah katakan kepada saya bahwa belajar MongoDB query merasa seperti belajar masak. Pada awalnya, Anda mengikuti resep secara tepat. Tetapi saat Anda merasa nyaman, Anda mulai mencoba, menggabungkan rasa dalam cara baru dan menarik. Jadi, pergi dan mulai memasak query yang lezat!

Semoga Anda senang mengoding, dan may your queries always return the results you're looking for!

Credits: Image by storyset