Siap menghubungkan klaster MongoDB Anda ke proyek Python? Anda beruntung. Dalam tutorial ini, Anda akan mempelajari apa itu PyMongo, mengapa ini menjadi paket andalan bagi pengembang Python yang menggunakan MongoDB sebagai basis data mereka, dan bagaimana membuat koneksi pertama Anda berjalan seefisien mungkin.
Jadi, apa sebenarnya paket Python PyMongo itu? Paket ini adalah driver Python resmi MongoDB, yang memungkinkan pengembang terhubung, melakukan kueri, dan berinteraksi antara aplikasi Python mereka dan basis data MongoDB.
Ini adalah cara yang direkomendasikan untuk berinteraksi dengan basis data MongoDB Anda dari Python, dan sangat cocok untuk membangun berbagai aplikasi web karena kompatibel dengan Flask dan Django. PyMongo benar-benar membantu pengembang Python memanfaatkan MongoDB sepenuhnya dalam berbagai aplikasi mereka.
Mari kita bahas cara memulai dengan PyMongo dengan menjalankan contoh aplikasi pengguna CRUD (create, read, update, delete) untuk menunjukkan betapa mudahnya memulai dengan kode minimal!
Prasyarat Keberhasilan
Agar dapat mengikuti tutorial ini dengan sukses, pastikan Anda memiliki hal-hal berikut:
Akun MongoDB Atlas
IDE pilihan Anda (tutorial ini menggunakan notebook Google Colab)
Python 3.6+
pip terpasang (jika Anda menggunakan IDE selain notebook Google Colab).
Menyiapkan Klaster MongoDB
Sebelum kita dapat menghubungkan basis data MongoDB ke proyek Python kita, kita perlu membuat klaster! Untuk melakukannya, masuk ke akun MongoDB Atlas Anda dan buat proyek baru, jika Anda belum memilikinya.
Lalu, buat klaster di dalam proyek tersebut.
Sekarang, Anda siap untuk melakukan deploy klaster. Klik tier "Free" (gratis selamanya!) dan pilih nama untuk klaster Anda atau biarkan nama default.
Perlu diingat bahwa setelah Anda memilih nama untuk klaster, Anda tidak dapat mengubahnya. Pilih penyedia cloud (Anda dapat memilih antara AWS, Google Cloud, dan Azure) dan pastikan Anda berada di wilayah yang benar.
Klik tombol hijau "Create Deployment", dan kita siap melanjutkan.
Anda akan diminta memilih "Username" dan "Password" untuk klaster Anda. Pilih sesuatu yang mudah diingat (tapi jangan terlalu mudah diingat seperti di tutorial ini!) namun aman, karena Anda akan membutuhkan detail ini setiap kali mengakses Connection String Anda.
Pastikan juga untuk mengklik tombol "Preload sample dataset" agar lebih mudah. Ini akan otomatis memuat himpunan data contoh "sample_mflix" yang akan kita gunakan.
Klik "Create Database User" untuk melanjutkan.
Sekarang, Anda dapat terhubung ke klaster! Ada banyak cara untuk melakukannya, tetapi karena tutorial ini berfokus pada PyMongo, kita akan terhubung melalui Drivers.
Pilih "Python" dan versi yang ingin Anda gunakan (kami akan memilih versi 4.7 atau yang lebih baru), dan Anda akan melihat Connection String Anda. Username dan password Anda otomatis terisi untuk memudahkan penggunaan.
Sekarang setelah Anda memiliki Connection String, simpanlah di tempat yang aman. Kita bisa menekan tombol hijau "Done".
Beginilah tampilan klaster Anda saat sudah dikonfigurasi.
Silakan buka tombol "Network Access" di sisi kiri layar dan pastikan alamat IP Anda dikonfigurasi dengan benar. Demi kesederhanaan tutorial ini (meski tentu saja tidak direkomendasikan untuk produksi), Anda dapat menjadikan alamat IP Anda "Access from Anywhere".
Peringatan produksi: Untuk aplikasi tingkat produksi, izinkan hanya IP tertentu di Network Access > IP Access List di Atlas.
Mari beralih ke IDE pilihan Anda dan bermain-main dengan data yang kita miliki!
Menghubungkan dan Melakukan Operasi CRUD Dengan PyMongo
Langkah pertama kita adalah menggunakan pip untuk memasang pymongo. Kita juga memasang getpass pada langkah ini karena kita ingin menjaga koneksi tetap aman:
Selanjutnya, mari atur koneksi MongoDB kita ke klaster. Kita akan menggunakan MongoClient untuk memastikan koneksi.
import getpass
from pymongo import MongoClient
# Get connection string from user
connection_string = getpass.getpass(prompt="Enter connection string WITH USER + PASS here: ")try:
client = MongoClient(connection_string)
client.admin.command("ping")print("Successfully connected")except Exception as e:print("Connection failed:", e)Didukung oleh
Kembali ke klaster Anda untuk melihat nama basis data dan koleksi kita. Nama basis datanya adalah sample_mflix dan nama koleksinya adalah users.
Berikut contoh informasi yang kita gunakan dalam klaster contoh ini. Kita memiliki ObjectId untuk setiap dokumen, serta nama, email, dan kata sandi setiap pengguna.
Mari jalankan uji cepat untuk memastikan kita dapat membaca dokumen dari skrip kita:
database = client["sample_mflix"]
collection = database["users"]for document in collection.find().limit(20):print(document)Didukung oleh
Setelah berhasil dijalankan, Anda akan melihat ini:
Catatan: Himpunan data sample_mflix berisi kata sandi plaintext untuk tujuan demonstrasi. Dalam aplikasi nyata, selalu lakukan hashing kata sandi (misalnya, dengan bcrypt atau Argon2) dan hindari hardcode kredensial.
Itu juga merupakan cara kita membaca informasi dalam klaster! Sekarang mari buat pengguna baru.
new_user ={"name":"Anaiya Raisinghani","email":"[email protected]","password":"pleasedonothackme"}# insert the document
result = collection.insert_one(new_user)print(result.inserted_id)Didukung oleh
Kita dapat melihat ID pengguna baru kita, dan jika saya kembali ke klaster, saya dapat mencari ID ini dan melihat apakah dokumen pengguna baru saya muncul:
Sekarang, mari kita perbarui dokumen yang baru saja kita buat.
Catatan: BSON sudah terpasang bersama PyMongo—tidak perlu pemasangan tambahan. ObjectId adalah format ID unik default MongoDB.
from bson import ObjectId
collection.update_one({"_id": result.inserted_id},# using the same document that we inserted above{"$set":{"password":"help!ivebeenhacked!!"}})Didukung oleh
Seperti yang kita lihat, kata sandi telah diperbarui, dan perubahannya muncul di UI MongoDB Atlas kita.
Sekarang, mari hapus dokumen ini.
delete_user = collection.delete_one({"_id": result.inserted_id})print("Deleted users:", delete_user.deleted_count)Didukung oleh
Jumlah pengguna yang dihapus akan "1". Mari kita periksa ulang di UI MongoDB Atlas (untuk memastikan!).
Kita telah berhasil menghapus dokumen kita!
Kesimpulan
Dalam tutorial ini, kita telah membahas 10 menit pertama Anda dengan PyMongo—driver Python resmi MongoDB. Kita telah berhasil membaca dokumen dalam koleksi, membuat pengguna baru, memperbarui pengguna tersebut, dan menghapusnya!
Apa saja kesalahan umum saat menghubungkan PyMongo ke MongoDB?⌄
Masalah yang umum termasuk connection string yang salah, pembatasan firewall (daftar putih IP), atau kegagalan autentikasi. Periksa kredensial dan pengaturan jaringan Anda dengan saksama jika koneksi gagal.
Apakah PyMongo mendukung pemrograman asinkron?⌄
PyMongo sendiri tidak mendukung operasi async secara native. Jika Anda memerlukan kemampuan async, pertimbangkan menggunakan Motor, driver Python asinkron resmi MongoDB.
Bisakah PyMongo menangani transaksi basis data?⌄
Ya, PyMongo mendukung transaksi ACID multidokumen, asalkan Anda menggunakan replica set atau klaster ter-shard di MongoDB. Transaksi tidak tersedia pada deployment standalone.
Bagaimana cara menangani connection pooling di PyMongo?⌄
PyMongo secara otomatis mengelola connection pooling di balik layar. Anda dapat mengonfigurasi parameter pooling (seperti ukuran pool dan timeout) melalui pengaturan MongoClient jika diperlukan.
Bisakah saya menggunakan PyMongo dengan Pandas untuk tugas analisis data?⌄
Tentu! Anda dapat dengan mudah mengambil data MongoDB menggunakan PyMongo, lalu memuatnya langsung ke Pandas DataFrame untuk analisis dan manipulasi data.
Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Dalam kursus konseptual ini (tidak memerlukan pemrograman), Anda akan mempelajari empat jenis utama basis data NoSQL dan mesin-mesin populer yang digunakan.
Siap menghubungkan klaster MongoDB Anda ke proyek Python? Anda beruntung. Dalam tutorial ini, Anda akan mempelajari apa itu PyMongo, mengapa ini menjadi paket andalan bagi pengembang Python yang menggunakan MongoDB sebagai basis data mereka, dan bagaimana membuat koneksi pertama Anda berjalan seefisien mungkin.
Jika Anda baru memulai, pastikan untuk melihat kursus kami, Introduction to Using MongoDB for Data Science in Python.
Apa itu PyMongo?
Jadi, apa sebenarnya paket Python PyMongo itu? Paket ini adalah driver Python resmi MongoDB, yang memungkinkan pengembang terhubung, melakukan kueri, dan berinteraksi antara aplikasi Python mereka dan basis data MongoDB.
Ini adalah cara yang direkomendasikan untuk berinteraksi dengan basis data MongoDB Anda dari Python, dan sangat cocok untuk membangun berbagai aplikasi web karena kompatibel dengan Flask dan Django. PyMongo benar-benar membantu pengembang Python memanfaatkan MongoDB sepenuhnya dalam berbagai aplikasi mereka.
Mari kita bahas cara memulai dengan PyMongo dengan menjalankan contoh aplikasi pengguna CRUD (create, read, update, delete) untuk menunjukkan betapa mudahnya memulai dengan kode minimal!
Prasyarat Keberhasilan
Agar dapat mengikuti tutorial ini dengan sukses, pastikan Anda memiliki hal-hal berikut:
pipterpasang (jika Anda menggunakan IDE selain notebook Google Colab).Menyiapkan Klaster MongoDB
Sebelum kita dapat menghubungkan basis data MongoDB ke proyek Python kita, kita perlu membuat klaster! Untuk melakukannya, masuk ke akun MongoDB Atlas Anda dan buat proyek baru, jika Anda belum memilikinya.
Lalu, buat klaster di dalam proyek tersebut.
Sekarang, Anda siap untuk melakukan deploy klaster. Klik tier "Free" (gratis selamanya!) dan pilih nama untuk klaster Anda atau biarkan nama default.
Perlu diingat bahwa setelah Anda memilih nama untuk klaster, Anda tidak dapat mengubahnya. Pilih penyedia cloud (Anda dapat memilih antara AWS, Google Cloud, dan Azure) dan pastikan Anda berada di wilayah yang benar.
Klik tombol hijau "Create Deployment", dan kita siap melanjutkan.
Anda akan diminta memilih "Username" dan "Password" untuk klaster Anda. Pilih sesuatu yang mudah diingat (tapi jangan terlalu mudah diingat seperti di tutorial ini!) namun aman, karena Anda akan membutuhkan detail ini setiap kali mengakses Connection String Anda.
Pastikan juga untuk mengklik tombol "Preload sample dataset" agar lebih mudah. Ini akan otomatis memuat himpunan data contoh "sample_mflix" yang akan kita gunakan.
Klik "Create Database User" untuk melanjutkan.
Sekarang, Anda dapat terhubung ke klaster! Ada banyak cara untuk melakukannya, tetapi karena tutorial ini berfokus pada PyMongo, kita akan terhubung melalui Drivers.
Pilih "Python" dan versi yang ingin Anda gunakan (kami akan memilih versi 4.7 atau yang lebih baru), dan Anda akan melihat Connection String Anda. Username dan password Anda otomatis terisi untuk memudahkan penggunaan.
Sekarang setelah Anda memiliki Connection String, simpanlah di tempat yang aman. Kita bisa menekan tombol hijau "Done".
Beginilah tampilan klaster Anda saat sudah dikonfigurasi.
Silakan buka tombol "Network Access" di sisi kiri layar dan pastikan alamat IP Anda dikonfigurasi dengan benar. Demi kesederhanaan tutorial ini (meski tentu saja tidak direkomendasikan untuk produksi), Anda dapat menjadikan alamat IP Anda "Access from Anywhere".
Peringatan produksi: Untuk aplikasi tingkat produksi, izinkan hanya IP tertentu di Network Access > IP Access List di Atlas.
Mari beralih ke IDE pilihan Anda dan bermain-main dengan data yang kita miliki!
Menghubungkan dan Melakukan Operasi CRUD Dengan PyMongo
Langkah pertama kita adalah menggunakan
pipuntuk memasangpymongo. Kita juga memasanggetpasspada langkah ini karena kita ingin menjaga koneksi tetap aman:Selanjutnya, mari atur koneksi MongoDB kita ke klaster. Kita akan menggunakan
MongoClientuntuk memastikan koneksi.Kembali ke klaster Anda untuk melihat nama basis data dan koleksi kita. Nama basis datanya adalah
sample_mflixdan nama koleksinya adalahusers.Berikut contoh informasi yang kita gunakan dalam klaster contoh ini. Kita memiliki ObjectId untuk setiap dokumen, serta nama, email, dan kata sandi setiap pengguna.
Mari jalankan uji cepat untuk memastikan kita dapat membaca dokumen dari skrip kita:
Setelah berhasil dijalankan, Anda akan melihat ini:
Catatan: Himpunan data sample_mflix berisi kata sandi plaintext untuk tujuan demonstrasi. Dalam aplikasi nyata, selalu lakukan hashing kata sandi (misalnya, dengan bcrypt atau Argon2) dan hindari hardcode kredensial.
Itu juga merupakan cara kita membaca informasi dalam klaster! Sekarang mari buat pengguna baru.
Kita dapat melihat ID pengguna baru kita, dan jika saya kembali ke klaster, saya dapat mencari ID ini dan melihat apakah dokumen pengguna baru saya muncul:
Sekarang, mari kita perbarui dokumen yang baru saja kita buat.
Catatan: BSON sudah terpasang bersama PyMongo—tidak perlu pemasangan tambahan. ObjectId adalah format ID unik default MongoDB.
Seperti yang kita lihat, kata sandi telah diperbarui, dan perubahannya muncul di UI MongoDB Atlas kita.
Sekarang, mari hapus dokumen ini.
Jumlah pengguna yang dihapus akan "1". Mari kita periksa ulang di UI MongoDB Atlas (untuk memastikan!).
Kita telah berhasil menghapus dokumen kita!
Kesimpulan
Dalam tutorial ini, kita telah membahas 10 menit pertama Anda dengan PyMongo—driver Python resmi MongoDB. Kita telah berhasil membaca dokumen dalam koleksi, membuat pengguna baru, memperbarui pengguna tersebut, dan menghapusnya!
Untuk informasi lebih lanjut tentang PyMongo, silakan lihat kursus Introduction to Using MongoDB for Data Science in Python dan kunjungi dokumentasi resmi.