Lewati ke konten utama

Menghubungkan MongoDB ke Python: 10 Menit Pertama Anda Dengan PyMongo

Pelajari apa itu PyMongo, mengapa pengembang Python menggunakannya dengan MongoDB, dan cara cepat menghubungkan MongoDB ke aplikasi Python Anda.
· 5 mnt Baca

Jelajahi bersama AI

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: 

  • 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. 

 Membuat proyek di MongoDB Atlas

 Lalu, buat klaster di dalam proyek tersebut. 

Membuat klaster di dalam proyek

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.

Mendeploy klaster Anda

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. 

Memilih username dan password

Sekarang, Anda dapat terhubung ke klaster! Ada banyak cara untuk melakukannya, tetapi karena tutorial ini berfokus pada PyMongo, kita akan terhubung melalui Drivers. 

Terhubung ke klaster Anda

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.

Menghubungkan dengan MongoDB Driver

Sekarang setelah Anda memiliki Connection String, simpanlah di tempat yang aman. Kita bisa menekan tombol hijau "Done". 

Beginilah tampilan klaster Anda saat sudah dikonfigurasi. 

Klaster setelah 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:

!pip install pymongo

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)

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. 

Koleksi yang kita gunakan

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)

Setelah berhasil dijalankan, Anda akan melihat ini:

Memastikan kita terhubung dengan benar ke basis data MongoDB kita

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)

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:

Mencari dokumen pengguna baru kita

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!!"}}
)

Kita telah memperbarui dokumen kita

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)

Jumlah pengguna yang dihapus akan "1". Mari kita periksa ulang di UI MongoDB Atlas (untuk memastikan!).

Kita telah berhasil menghapus pengguna kita

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.

FAQ

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.

Anaiya Raisinghani

Penulis

Anaiya Raisinghani

Anaiya adalah Developer Advocate di MongoDB, berlokasi di NYC.

Topik

Terkait

blogs

Tutorial Korelasi di R

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

blogs

Spaghetti Plot dan Jalur Badai