Pahami kueri dan operasi MongoDB dengan bantuan panduan praktis ini.
MongoDB adalah salah satu database NoSQL yang paling diinginkan dan dikagumi untuk pengembangan profesional. Fleksibilitas, skalabilitas, dan kemampuannya untuk menangani volume data yang besar menjadikannya pilihan utama untuk aplikasi modern. Jika Anda ingin menguasai kueri dan operasi reguler MongoDB, Anda berada di tempat yang tepat.
Apakah Anda ingin mengambil dan memanipulasi data secara efisien, mengimplementasikan model data yang kuat, atau membangun responsif aplikasi, memperoleh pemahaman mendalam tentang kueri dan operasi MongoDB umum tidak diragukan lagi akan meningkatkan Anda keterampilan.
1. Membuat atau Beralih Database
Membuat database secara lokal melalui MongoDB Shell sangatlah mudah, terutama jika Anda telah menyiapkan klaster jarak jauh. Anda dapat membuat database baru di MongoDB dengan menggunakan memerintah:
use db_name
Sementara perintah di atas membuat database baru, Anda dapat menggunakannya untuk beralih ke database yang sudah ada tanpa membuat database baru dari awal.
2. Jatuhkan Basis Data
Pertama, alihkan ke database yang ingin Anda jatuhkan menggunakan menggunakan perintah seperti yang dilakukan sebelumnya. Kemudian drop database menggunakan dropDatabase() memerintah:
use db_name
db.dropDatabase()
3. Buat Koleksi
Untuk membuat koleksi, alihkan ke database target. Menggunakan buatKoleksi() kata kunci untuk membuat koleksi MongoDB baru:
db.createCollection("collection_name")
Mengganti nama_koleksi dengan nama koleksi pilihan Anda.
4. Sisipkan Dokumen ke dalam Koleksi
Saat mengirim data ke koleksi, Anda bisa menyisipkan satu dokumen atau kumpulan dokumen.
Untuk menyisipkan satu dokumen:
db.collection_name.insertOne({"Name":"Idowu", "Likes":"Chess"})
Anda juga dapat menggunakan metode di atas untuk memasukkan array dokumen dengan satu ID:
db.collection_name.insertOne([{"Name":"Idowu", "Likes":"Chess"}, {"Language": "Mongo", "is_admin": true}])
Untuk menyisipkan banyak dokumen sekaligus, dengan masing-masing memiliki ID terpisah, gunakan insertMany kata kunci:
db.collection_name.insertMany([{"Name":"Idowu", "Likes":"Chess"}, {"Name": "Paul", "Likes": "Wordle"}])
5. Dapatkan Semua Dokumen Dari Koleksi
Anda dapat meminta semua dokumen dari koleksi menggunakan menemukan() kata kunci:
db.collection_name.find()
Di atas mengembalikan semua dokumen di dalam koleksi yang ditentukan:
Anda juga dapat membatasi data yang dikembalikan ke nomor tertentu. Misalnya, Anda dapat menggunakan perintah berikut untuk mendapatkan hanya dua dokumen pertama:
db.collection_name.find().limit(2)
6. Filter Dokumen dalam Koleksi
Ada banyak cara untuk memfilter dokumen di MongoDB. Perhatikan data berikut, misalnya:
Jika menanyakan hanya bidang tertentu dalam dokumen, gunakan menemukan metode:
db.collection_name.find({"Likes":"Wordle"}, {"_id":0, "Name":1})
Di atas mengembalikan semua dokumen di mana nilai Suka adalah Kata-kata. Ini hanya menampilkan nama dan mengabaikan ID dokumen.
Anda juga dapat memfilter koleksi berdasarkan faktor numerik. Katakanlah Anda ingin mendapatkan nama semua pengguna yang berusia lebih dari 21 tahun, gunakan $gt operator:
db.collection_name.find({"Likes":"Chess", "Age":{"$gt":21}}, {"_id":0, "Name":1})
Outputnya terlihat seperti ini:
Coba ganti menemukan dengan findOne untuk melihat apa yang terjadi. Namun, ada banyak kata kunci pemfilteran lainnya:
- $lt: Semua nilai kurang dari yang ditentukan.
- $gte: Nilai sama dengan atau lebih besar dari yang ditentukan.
- $ lte: Nilai yang kurang dari atau sama dengan yang ditentukan.
- $eq: Mendapat semua nilai yang sama dengan yang ditentukan.
- $ne: Semua nilai tidak sama dengan yang ditentukan.
- $ masuk: Gunakan ini saat membuat kueri berdasarkan larik. Itu mendapatkan semua nilai yang cocok dengan salah satu item dalam array. Itu $nin kata kunci melakukan sebaliknya.
7. Sortir Kueri
Pengurutan membantu menyusun kueri dalam urutan tertentu. Anda dapat mengurutkan dalam urutan menurun atau menaik. Perlu diingat bahwa pengurutan membutuhkan referensi numerik.
Misalnya, untuk mengurutkan dalam urutan menaik:
db.collection_name.find({"Likes":"Chess"}).sort({"Age":1})
Untuk memilah kueri di atas dalam urutan menurun, ganti "1" dengan "-1".
db.collection_name.find({"Likes":"Chess"}).sort({"Age":-1})
8. Perbarui Dokumen
Pembaruan MongoDB memerlukan operator atom untuk menentukan bagaimana Anda ingin pembaruan dilakukan. Berikut adalah daftar operator atom yang umum digunakan yang dapat Anda pasangkan dengan kueri pembaruan:
- $set: Menambahkan kolom baru atau mengubah kolom yang sudah ada.
- $ dorong: Masukkan item baru ke dalam array. Pasangkan dengan $masing-masing operator untuk memasukkan banyak item sekaligus.
- $tarik: Menghapus item dari larik. Gunakan dengan $ masuk untuk menghapus banyak item sekaligus.
- $tidak disetel: Menghapus bidang dari dokumen.
Untuk memperbarui dokumen dan menambahkan bidang baru, misalnya:
db.collection_name.updateOne({"Name":"Sandy"}, {"$set":{"Name":"James", "email":"[email protected]"}})
Di atas memperbarui dokumen yang ditentukan seperti yang ditunjukkan:
Menghapus bidang email sangat mudah dengan $tidak disetel operator:
db.collection_name.updateOne({"Name":"Sandy"}, {"$unset":{"email":"[email protected]"}})
Perhatikan contoh data berikut:
Anda dapat memasukkan item ke dalam yang sudah ada item bidang array menggunakan $ dorong operator:
db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items":"Plantain"}})
Inilah hasilnya:
Menggunakan $masing-masing operator untuk memasukkan banyak item sekaligus:
db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items": {"$each":["Almond", "Melon"]}}})
Inilah hasilnya:
Seperti disebutkan, $tarik operator menghapus item dari array:
db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items":"Plantain"}})
Data yang diperbarui terlihat seperti ini:
Sertakan $ masuk kata kunci untuk menghapus banyak item dalam array sekaligus:
db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items": {"$in":["Almond", "Melon"]} }})
9. Hapus Dokumen atau Bidang
Itu deleteOne atau hapus Banyak kata kunci membuang dokumen dari koleksi. Menggunakan deleteOne untuk menghapus dokumen berdasarkan bidang tertentu:
db.collection_name.deleteOne({"Name":"IDNoble"})
Jika Anda ingin menghapus banyak dokumen dengan kunci yang sama, gunakan hapus Banyak alih-alih. Kueri di bawah ini menghapus semua dokumen yang berisi Catur sebagai mereka Suka.
db.collection.deleteMany({"Likes":"Chess"})
10. Operasi Pengindeksan
Pengindeksan meningkatkan kinerja kueri dengan merampingkan jumlah dokumen yang perlu dipindai oleh MongoDB. Seringkali yang terbaik adalah membuat indeks pada bidang yang lebih sering Anda kueri.
Pengindeksan MongoDB mirip dengan cara Anda gunakan indeks untuk mengoptimalkan kueri SQL. Misalnya, untuk membuat indeks menaik pada Nama bidang:
db.collection.createIndex({"Name":1})
Untuk membuat daftar indeks Anda:
db.collection.getIndexes()
Hal di atas hanyalah kata pengantar. Ada beberapa metode lain untuk membuat indeks di MongoDB.
11. Pengumpulan
Pipa agregasi, versi MapReduce yang ditingkatkan, memungkinkan Anda untuk menjalankan dan menyimpan perhitungan kompleks dari dalam MongoDB. Tidak seperti MapReduce, yang membutuhkan penulisan peta dan fungsi pengurangan secara terpisah fungsi JavaScript, agregasi sangat mudah dan hanya menggunakan metode MongoDB bawaan.
Perhatikan data penjualan berikut, misalnya:
Menggunakan agregasi MongoDB, Anda dapat menghitung dan menyimpan jumlah produk yang terjual untuk setiap kategori sebagai berikut:
db.sales.aggregate([{$group:{"_id":"$Section", "totalSold":{$sum:"$Sold"}}}, {$project:{"_id":0, "totalSold":1, "Section":"$_id"}}])
Kueri di atas mengembalikan yang berikut:
Menguasai Kueri MongoDB
MongoDB menawarkan banyak metode kueri, termasuk fitur untuk meningkatkan kinerja kueri. Terlepas dari bahasa pemrograman Anda, struktur kueri di atas belum sempurna untuk berinteraksi dengan database MongoDB.
Namun, mungkin ada beberapa perbedaan dalam sintaksis dasar. Misalnya, sementara beberapa bahasa pemrograman seperti Python mengenali kasus ular, yang lain, termasuk JavaScript, menggunakan kasus unta. Pastikan Anda meneliti apa yang cocok untuk teknologi pilihan Anda.