MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Pemrograman Database Python dengan MongoDB untuk Pemula

Tujuan dari tutorial pemrograman database Python ini adalah untuk memberikan pengenalan yang lembut tentang penggunaan database NoSQL sebagai penyimpanan data untuk aplikasi Python. Audiens yang dituju adalah para pengembang tingkat pemula atau pengembang tingkat menengah yang terbiasa menggunakan database berorientasi SQL seperti Oracle, SQL Server, atau MySQL. Demonstrasi dalam artikel ini akan paralel dengan demonstrasi yang digunakan dalam artikel pemrograman Database SQL lainnya yang melibatkan Python, seperti Pemrograman Database Python dengan SQL Express untuk Pemula, dan juga akan menggunakan Python 3.

Apa itu NoSQL?

Popularitas Python terus tumbuh dalam popularitas sebagian karena kemudahan yang dapat digunakan dengan teknologi baru. Salah satu teknologi "baru" tersebut adalah penggunaan database "NoSQL". Salah satu fitur yang paling menarik dari jenis database ini adalah kenyataan bahwa, seperti namanya, umumnya tidak ada bahasa query tambahan, seperti salah satu dari banyak varian SQL, yang harus dipelajari agar dapat bekerja dengan database. dari sudut pandang program. Ini sangat memudahkan pengembangan aplikasi karena struktur data asli dari bahasa pemrograman dan sintaksnya adalah "bahasa kueri" de facto, asalkan modul yang sesuai ditambahkan ke lingkungan pengembangan.

Database NoSQL, selain kebanyakan tidak menggunakan bahasa kueri, juga menyusun data secara internal dengan cara yang sangat berbeda dengan database SQL. Pengembang yang lebih terbiasa dengan paradigma pemrograman SQL harus menyesuaikan pemikirannya agar sesuai dengan cara NoSQL menjalankan bisnis. Lebih jauh di bawah tenda, desain server database NoSQL memiliki perbedaan yang sama. Server database NoSQL lebih fokus pada kecepatan dan skalabilitas dengan "konsistensi akhirnya", dibandingkan dengan server database SQL yang lebih fokus pada konsistensi langsung.

Apa itu MongoDB?

MongoDB adalah salah satu dari banyak database "NoSQL". Seperti MariaDB, ia menggunakan sistem nama pengguna dan kata sandinya sendiri untuk manajemen akses. MongoDB, selain menawarkan perangkat lunak server yang dapat diunduh tanpa biaya, juga menawarkan opsi pengantar berbasis cloud tanpa biaya (melalui Atlas penawaran) yang mengurangi kebutuhan untuk mengunduh dan mengonfigurasi instans. Demonstrasi dalam tutorial pemrograman database ini akan menggunakan instance MongoDB gratis yang dihosting di cloud.

Seperti halnya dengan Python dan server database apa pun, modul driver database tambahan, yaitu PyMongo , diperlukan agar Python dapat berkomunikasi dengan server MongoDB dan database apa pun yang ada di dalamnya. Selain itu, seperti server database lainnya, MongoDB menyediakan alat manajemen pendamping yang disebut MongoDB Shell . Demonstrasi dalam artikel ini akan menggunakan database MongoDB yang dibuat menggunakan alat ini. Perhatikan bahwa MongoDB Shell adalah salah satu dari banyak alat manajemen yang ada untuk MongoDB.

  • Unduh Server Komunitas MongoDB
  • Penawaran Perkenalan Berbasis Cloud MongoDB Tanpa Biaya
  • Unduhan MongoDB Shell

Harap dicatat bahwa tautan yang diposting aktif pada saat artikel ini ditulis. Jika tautan tidak lagi aktif, produk ini dapat diunduh melalui mesin telusur pilihan.

Cara Mengonfigurasi MongoDB untuk Pengembangan Perangkat Lunak

MongoDB Penawaran Perkenalan Berbasis Cloud Tanpa Biaya konfigurasi sepenuhnya berbasis web. Itu dapat dengan mudah ditautkan ke akun Google seseorang untuk tujuan sistem masuk tunggal. Perhatikan saja peringatan berikut:

  • Pilih layanan hosting data yang secara fisik dekat. Layanan hosting yang ditampilkan dalam artikel ini di Virginia mungkin tidak ideal untuk seseorang yang jauh dari sana.
  • Kata sandi yang digunakan untuk menghubungkan aplikasi ke server database harus disimpan dengan aman karena tidak dapat dipulihkan jika hilang. Itu hanya dapat disetel ulang.
  • Nama Cluster, setelah ditetapkan, tidak dapat diubah. Demonstrasi dalam artikel ini akan menggunakan cluster bernama Cluster0 .
  • Pastikan bahwa semua alamat IP tempat aplikasi apa pun, termasuk MongoDB Shell, dikonfigurasikan dalam pengaturan keamanan.
  • MongoDB Shell mungkin tidak memiliki program penginstalan. Selalu pastikan untuk menyertakan jalur ke folder yang berisi aplikasi ini di jalur Sistem Operasi.

Cara Menghubungkan ke Server Basis Data MongoDB

Setelah berhasil mengonfigurasi Cluster MongoDB Berbasis Cloud, perlu diperhatikan string koneksi tertentu yang digunakan untuk menghubungkannya. String di bawah ini juga dapat diambil dengan masuk ke Situs Atlas MongoDB dan mengklik tombol Connect tombol:

Gambar 1 – Dasbor Atlas MongoDB dengan Tombol Hubungkan Disorot

Catatan, pengaturan seperti nama pengguna dan kata sandi basis data, dan rentang IP yang diizinkan untuk koneksi dapat diatur masing-masing di tautan Akses Basis Data dan Akses Jaringan.

Di bawah ini adalah dua contoh koneksi. Yang pertama adalah untuk MongoDB Shell.

MongoDB:Menghubungkan dari Baris Perintah

Membuka Prompt Perintah Windows dijelaskan dalam Pemrograman Basis Data Python dengan SQL Express untuk Pemula di bawah Membuka Prompt Perintah Windows judul.

Gambar 2 – Menghubungkan melalui Command Line ke MongoDB Shell

Perhatikan bahwa perintah untuk membuka MongoDB Shell akan bervariasi menurut Sistem Operasi. Nama Cluster dapat bervariasi, dan parameter yang disorot dalam perintah perlu diubah ke detail pengaturan MongoDB berbasis cloud. Di Windows, perintah ini disebut mongosh . Perhatikan bahwa nama database RazorDemo disertakan di bawah, karena itulah database yang akan digunakan dalam demonstrasi dalam tutorial pemrograman ini. Perintah juga menerima parameter tambahan untuk kata sandi seperti yang ditunjukkan di bawah ini:

Gambar 3 – Mengautentikasi dengan Kata Sandi di Baris Perintah.

Catatan, meskipun nyaman untuk tujuan pengembangan menggunakan kata sandi di baris perintah, daripada harus mengetiknya setiap kali, perhatikan bahwa kata sandi muncul dalam riwayat perintah yang dieksekusi sebelumnya. Opsi ini tidak boleh digunakan di lingkungan pengembangan di mana pengguna lain dapat mengakses riwayat perintah sebelumnya.

Juga, semoga, tidak ada yang mengira saya akan benar-benar menggunakan 123456 sebagai kata sandi, bukan?

Gambar 4 – Hanya Memeriksa

Perhatikan bahwa dalam kedua contoh di atas, ^ karakter digunakan sebagai simbol kelanjutan baris di Command Prompt Windows.

Menghubungkan MongoDB dari Python

String berikut, dengan perubahan yang sesuai, dapat ditempatkan ke dalam kode Python untuk digunakan oleh PyMongo pengemudi:

Gambar 5 – Menghubungkan melalui Python dan PyMongo

Dalam string koneksi di atas, nama database RazorDemo akan digunakan sebagai pengganti myFirstDatabase .

Cara Membuat Database di MongoDB

MongoDB tidak "membuat" database sampai database itu "digunakan" dan data benar-benar ditulis ke dalamnya. Gambar di bawah menunjukkan koneksi yang berhasil ke layanan MongoDB Atlas menggunakan RazorDemo database, tetapi tidak ada database yang terdaftar saat menggunakan tampilkan dbs perintah:

Gambar 6 – Belum ada database RazorDemo…

Cara “Menggunakan” Database di MongoDB

Di MongoDB, database "digunakan" setiap kali terhubung secara langsung menggunakan string kueri atau ketika nama database adalah argumen dari penggunaan memerintah. Perhatikan bagaimana menjalankan perintah ini pada database yang dipilih saat ini menampilkan pesan yang berbeda dari beralih ke database itu:

Gambar 7 – Beralih antar database

Untuk benar-benar "membuat" database, beberapa data harus dimasukkan. RazorDemo database dari artikel sebelumnya, Memulai Dengan Razor Pages Menggunakan C# dan Python Pemrograman Database dengan SQL Express untuk Pemula, menggunakan dua tabel yaitu Artists dan Album . Di MongoDB, apa yang disebut database berorientasi SQL sebagai tabel disebut sebagai koleksi . Membuat dua entri ke dalam koleksi bernama Artis dan Album , masing-masing, akan membuat database dan juga koleksi.

Setiap entri dalam koleksi disebut sebagai dokumen . Ini analog dengan catatan dalam tabel database berorientasi SQL.

Perhatikan, sama pentingnya bagi aplikasi utama untuk menyimpan buat tabel pernyataan dalam database berorientasi SQL, alasan yang sama juga akan berlaku untuk database awal dan perintah pembuatan koleksi untuk database MongoDB untuk aplikasi utama.

Perintah di bawah ini akan membuat Artis koleksi dengan memasukkan satu dokumen ke dalamnya, lalu kueri Artis koleksi untuk memverifikasi keberhasilan operasi penyisipan. Perhatikan bagaimana operasi penyisipan menggunakan sintaks JSON:

db.Artists.insertOne({artist_name: "Skeered Tigon Stripes"})

db.Artists.find({})

Listing 1 - Inserting a new document.

Perintah-perintah ini memberikan output berikut di MongoDB Shell:

Gambar 8 – Membuat koleksi Artis

_id ditunjukkan di atas dibuat secara otomatis dan unik dalam koleksi, mirip dengan nilai kunci utama yang dihasilkan secara otomatis dalam database berorientasi SQL.

Catatan, MongoDB Shell dapat melaporkan bahwa .insert() perintah tidak digunakan lagi. Contoh ini menggunakan .insertOne() perintah karena itu adalah salah satu alternatif yang disediakan.

Sintaks serupa dapat digunakan untuk membuat Album koleksi:

db.Albums.insertOne({artist_name: "Skeered Tigon Stripes",album_name: "Genetically Engineered Critters"})

db.Albums.find({})

Listing 2 - Inserting another new document

Gambar 9 – Membuat Koleksi Album

Catatan, Peringatan terkait caniuse-lite muncul saat menekan tombol Enter kunci sebelum menyelesaikan perintah untuk membuat dokumen. MongoDB Shell akan memungkinkan perintah untuk dipecah di beberapa baris sebelum menyelesaikannya. Peringatan ini menunjukkan bahwa MongoDB Shell mungkin menggunakan driver yang sudah usang dan perlu diperbarui di rilis mendatang.

Tampaknya tidak mengganggu proses pembuatan dokumen.

Beberapa dokumen lagi untuk Album koleksi:

db.Albums.insertOne({ artist_name: "Skeered Tigon Stripes", album_name: "Volume Control: No" })
db.Albums.insertOne({ artist_name: "Skeered Tigon Stripes", album_name: "Verse Vica })
db.Albums.insertOne({ artist_name: "Skeered Tigon Stripes", album_name: "Rotten to the Core" })

db.Albums.find({})

Listing 3 - Additional documents for the Albums collection

Gambar 10 – Dokumen Album tambahan baru

TIDAK ADA Batasan Kunci Asing

Karena MongoDB bukan sistem manajemen basis data relasional, MongoDB tidak menyediakan mekanisme untuk menerapkan jenis batasan kunci asing yang digunakan dalam tabel basis data berorientasi SQL di antara koleksi. Ia mengharapkan aplikasi untuk mempertahankan dan menegakkan hubungan tersebut. Dalam konteks MongoDB Shell, pengembang berkewajiban untuk mengetikkan nilai dengan benar untuk memastikan bahwa hubungan antara dokumen dalam koleksi dapat disimpulkan.

.deleteOne() perintah dapat digunakan untuk menghapus dokumen yang salah dimasukkan:

db.Albums.deleteOne({ artist_name: "Skeered Tigon Stripes", album_name: "I Typed the Album Name Wrong" })
Listing 4 - Deleting a document.

Perhatikan bahwa, jika dokumen tidak cocok dengan parameter yang dimasukkan, tidak ada kesalahan yang akan ditampilkan, sebaliknya, pesan konfirmasi akan menunjukkan bahwa tidak ada yang dihapus:

Gambar 11 – Pesan konfirmasi yang menunjukkan tidak ada dokumen yang dihapus

.deleteMany() perintah dapat digunakan untuk menghapus beberapa catatan yang cocok dengan kriteria JSON. Perintah di bawah ini menghapus semua dokumen dalam koleksi Album di mana nama_artis nilainya bukan Skeered Tigon Stripes :

db.Albums.deleteMany({artist_name: {$ne : "Skeered Tigon Stripes" }})

Listing 5 - Deleting multiple documents based on criteria.

Gambar 12 – Menghapus beberapa record

Pemikiran Akhir tentang Pemrograman Basis Data Python dengan MongoDB

Sekarang kita telah mempelajari cara menghubungkan ke database MongoDB dan cara membuat versi NO SQL dari tabel dengan "catatan", kita dapat melanjutkan bekerja dengan skrip Python untuk memasukkan data ke dalam database MongoDB kita. Kami akan melanjutkan diskusi itu di bagian kedua – dan terakhir – dari tutorial pemrograman database Python ini:Pengembangan Database Python dan MongoDB.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoose.js membuat banyak koneksi ke MongoDB dari satu panggilan connect()

  2. MongoDB-sebagai-Layanan di Akun Amazon AWS Anda Sendiri

  3. Pencegahan Injeksi NoSQL JavaScript di MongoDB

  4. MongoDB - Beberapa $atau operasi

  5. SchemaType mana di Mongoose yang Terbaik untuk Timestamp?