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

Buat Cluster Database di Cloud Dengan MongoDB Atlas

Selama bertahun-tahun sekarang, MongoDB telah menjadi database NoSQL untuk individu dan perusahaan yang membangun aplikasi skala besar. Ini open source, mudah diskalakan, dan menyediakan ketersediaan tinggi. Ini juga mendukung kueri yang sangat kompleks dan kontrol konkurensi berbutir halus.

Namun, tugas yang diperlukan seperti menginstal database, menyetelnya untuk mempertahankan performa optimal dalam jangka waktu yang lama, dan mengamankannya cenderung membutuhkan banyak upaya yang terampil dan berdedikasi.

Untungnya, ada alternatif yang lebih mudah: MongoDB Atlas, database versi cloud yang terkelola sepenuhnya.

Dengan MongoDB Atlas, Anda dapat membuat klaster MongoDB di penyedia cloud utama pilihan Anda dan mulai menggunakan klaster itu dalam hitungan menit. Dengan menggunakan antarmuka pengguna berbasis browser Atlas, Anda juga dapat secara intuitif mengonfigurasi cluster dan memantau kinerjanya.

Dalam tutorial ini, saya akan menunjukkan cara membuat cluster tingkat gratis MongoDB Atlas dan menggunakannya dalam aplikasi Python.

Prasyarat

Sebelum melanjutkan, pastikan Anda telah menginstal dan mengkonfigurasi berikut ini di komputer Anda:

  • Python 3.4 atau lebih tinggi
  • pip 18.0 atau lebih tinggi

1. Membuat Cluster

Untuk dapat menggunakan layanan cloud MongoDB, Anda memerlukan akun MongoDB Atlas. Untuk membuatnya, buka berandanya dan tekan tombol Mulai gratis tombol.

Setelah Anda melengkapi formulir pendaftaran singkat, Anda akan diarahkan ke wizard pembuatan cluster. Di bagian pertama, Anda harus memilih penyedia cloud dan wilayah yang Anda inginkan.

Untuk meminimalkan latensi jaringan, idealnya Anda memilih wilayah yang paling dekat dengan komputer Anda. Namun, untuk saat ini, karena kami membuat cluster tingkat gratis, pastikan wilayah yang Anda pilih adalah wilayah yang memiliki tingkat gratis. Selain itu, jika Anda menggunakan Google Cloud VM atau instans Amazon EC2 sebagai lingkungan pengembangan, pilih penyedia cloud yang sesuai terlebih dahulu.

Di Tingkat Klaster bagian, pilih M0 opsi untuk membuat cluster tingkat gratis Anda. Menawarkan ruang penyimpanan 512 MB, versi terbaru MongoDB dengan WiredTiger sebagai mesin penyimpanan, set replika tiga node, dan bandwidth 10 GB per minggu.

Terakhir, beri nama yang bermakna untuk cluster dan tekan tombol Buat Cluster tombol.

MongoDB Atlas sekarang akan memakan waktu sekitar lima menit untuk menyiapkan cluster Anda.

2. Mengonfigurasi Cluster

Sebelum mulai menggunakan kluster, Anda harus memberikan beberapa detail terkait keamanan, jadi beralihlah ke Keamanan tab.

Pertama, di Pengguna MongoDB bagian, Anda harus membuat pengguna baru untuk diri sendiri dengan menekan tombol Tambahkan pengguna baru tombol. Pada dialog yang muncul, ketik nama pengguna dan sandi yang Anda inginkan, pilih Baca dan tulis ke database apa pun hak istimewa, dan tekan tombol Tambah Pengguna tombol.

Selanjutnya, di Daftar Putih IP bagian, Anda harus memberikan daftar alamat IP dari mana Anda akan mengakses cluster. Untuk saat ini, memberikan alamat IP komputer Anda saat ini sudah cukup.

Tekan tombol Tambahkan alamat IP tombol untuk membuat entri alamat IP baru. Pada dialog yang muncul, tekan tombol Tambahkan alamat IP saat ini tombol untuk mengisi otomatis Entri Daftar Putih bidang. Selain itu, jika Anda tidak memiliki alamat IP statis, sebaiknya tandai sebagai entri sementara dengan mencentang Simpan sebagai daftar putih sementara pilihan. Terakhir, tekan Konfirmasi untuk menambahkan entri.

3. Mendapatkan String Koneksi

Anda memerlukan string koneksi yang valid untuk terhubung ke cluster Anda dari aplikasi Anda. Untuk mendapatkannya, buka Ringkasan tab dan tekan tombol Hubungkan tombol.

Pada dialog yang terbuka, pilih Hubungkan Aplikasi Anda pilihan dan tekan Saya menggunakan driver 3.6 atau yang lebih baru tombol. Anda sekarang seharusnya dapat melihat string koneksi Anda. Itu tidak akan memiliki kata sandi Anda yang sebenarnya, jadi Anda harus memasukkannya secara manual. Setelah Anda melakukannya, buat catatan tentang string tersebut sehingga Anda dapat menggunakannya nanti.

4. Menginstal Driver Python

Untuk dapat berinteraksi dengan cluster MongoDB Atlas Anda secara terprogram, Anda harus menginstal driver MongoDB di komputer Anda. Untuk bahasa pemrograman Python, PyMongo adalah driver paling populer yang tersedia saat ini. Cara yang disarankan untuk menginstalnya di komputer Anda adalah dengan menggunakan pip modul seperti yang ditunjukkan di bawah ini:

python3 -m pip install pymongo --user

Anda mungkin telah memperhatikan bahwa string koneksi MongoDB Atlas Anda adalah mongodb+srv:// URI. Untuk mengaktifkan driver agar bekerja dengan catatan SRV DNS, Anda juga harus menginstal dnspython modul. Begini caranya:

python3 -m pip install dnspython --user

5. Menghubungkan ke Cluster

Anda sekarang dapat menggunakan cluster MongoDB Anda dari aplikasi Python apa pun. Untuk mengikuti saya, buat skrip Python baru dan buka menggunakan editor kode apa pun.

Di dalam skrip, untuk dapat berinteraksi dengan cluster, Anda memerlukan instance MongoClient kelas. Sebagai satu-satunya argumen untuk konstruktornya, teruskan string koneksi Anda.

import pymongo



my_client = pymongo.MongoClient(

    'mongodb+srv://alice:[email protected]/test?retryWrites=true'

)

Konstruktor di atas segera kembali dan tidak akan menimbulkan kesalahan apa pun. Oleh karena itu, untuk memeriksa apakah Anda telah berhasil membuat koneksi, saya sarankan Anda mencoba melakukan operasi pada cluster. Panggilan ke server_info() metode, yang memberi Anda berbagai detail tentang instans MongoDB Anda, sudah cukup.

Jika tidak ada kesalahan dalam string koneksi Anda, panggilan ke server_info() metode akan berhasil. Namun, jika nama pengguna atau sandi yang Anda tentukan salah, Anda akan menemukan OperationFailure kesalahan. Kode berikut menunjukkan cara menangkapnya:

try:

    print("MongoDB version is %s" % 

            my_client.server_info()['version'])

except pymongo.errors.OperationFailure as error:

    print(error)

    quit(1)

Sekarang Anda dapat melanjutkan dan mencoba menjalankan skrip Anda.

6. Memasukkan Dokumen

String koneksi default yang Anda dapatkan dari antarmuka web MongoDB Atlas menyebutkan database bernama test . Mari terus menggunakan database yang sama. Berikut cara mendapatkan referensinya:

my_database = my_client.test

Basis data MongoDB terdiri dari satu atau lebih koleksi, yang tidak lain adalah kumpulan dokumen BSON (kependekan dari JSON biner). Klaster tingkat gratis Anda di MongoDB Atlas dapat memiliki maksimum 500 koleksi.

Demi contoh realistis, mari buat koleksi baru bernama foods . Dengan PyMongo, Anda tidak perlu secara eksplisit memanggil metode apa pun untuk melakukannya. Anda cukup mereferensikannya seolah-olah sudah ada.

my_collection = my_database.foods

Perlu disebutkan bahwa kode di atas tidak membuat foods koleksi segera. Itu dibuat hanya setelah Anda menambahkan dokumen ke dalamnya. Jadi sekarang mari kita buat dan tambahkan dokumen baru yang berisi data nutrisi tentang makanan.

Menggunakan insert_one() metode adalah cara paling sederhana untuk menambahkan dokumen ke koleksi. Untuk menentukan konten dokumen, Anda meneruskan kamus Python ke metode. Contoh kode berikut menunjukkan caranya:

my_collection.insert_one({

    "_id": 1,

    "name": "pizza",

    "calories": 266,

    "fats": {

        "saturated": 4.5,

        "trans": 0.2

    },

    "protein": 11

})

Menambahkan dokumen satu per satu bisa jadi tidak efisien. Dengan insert_many() metode, Anda dapat menambahkan beberapa dokumen ke koleksi Anda sekaligus. Ia mengharapkan array kamus sebagai inputnya. Kode berikut menambahkan dua dokumen lagi ke koleksi:

my_collection.insert_many([

    {

        "_id": 2,

        "name": "hamburger",

        "calories": 295, "protein": 17,

        "fats": { "saturated": 5.0, "trans": 0.8 },

    },

    {

        "_id": 3,

        "name": "taco",

        "calories": 226, "protein": 9,

        "fats": { "saturated": 4.4, "trans": 0.5 },

    }

])

_id bidang yang Anda lihat di dokumen di atas adalah bidang yang digunakan sebagai kunci utama oleh MongoDB. Dengan demikian, ini tidak dapat diubah dan harus ada di semua dokumen MongoDB. Jika Anda lupa menyertakannya saat membuat dokumen, PyMongo akan menambahkannya untuk Anda secara otomatis dan memberikan nilai unik yang dibuat secara otomatis untuknya.

7. Menjalankan Kueri

Ketika Anda telah menambahkan beberapa dokumen ke koleksi Anda, Anda dapat menjalankan kueri dengan memanggil find() metode, yang mengembalikan Cursor objek yang dapat Anda ulangi. Jika Anda tidak memberikan argumen apa pun padanya, find mengembalikan semua dokumen dalam koleksi.

Kode berikut menunjukkan cara mencetak nama semua item makanan yang ada di koleksi kami:

my_cursor = my_collection.find()



for item in my_cursor:

    print(item["name"])



# Output is:

#   pizza

#   hamburger

#   taco

Jika Anda ingin find() metode untuk mengembalikan hanya dokumen-dokumen yang cocok dengan kriteria tertentu, Anda harus memberikan kamus Python ke sana. Misalnya, jika Anda ingin mencari dokumen yang name field disetel ke "pizza", Anda dapat menggunakan kode berikut:

my_cursor = my_collection.find({

    "name": "pizza"

})

Untuk kueri yang lebih kompleks, Anda dapat menggunakan operator kueri bernama intuitif MongoDB dalam kamus yang Anda berikan ke find() metode. Misalnya, kode berikut menunjukkan cara menggunakan $lt operator untuk menemukan dokumen yang calories bidang disetel ke nilai yang kurang dari 280:

my_cursor = my_collection.find({

    "calories": { "$lt": 280 }

})



for item in my_cursor:

    print("Name: %s, Calories: %d" % 

        (item["name"], item["calories"]))



# Output is:

#   Name: pizza, Calories: 266

#   Name: taco, Calories: 226

Dengan menggunakan notasi titik, Anda juga dapat menggunakan bidang bersarang dalam kueri Anda. Kode berikut menunjukkan cara menemukan dokumen yang trans bidang, yang ada di dalam fats bidang, disetel ke nilai yang lebih besar atau sama dengan 0,5:

my_cursor = my_collection.find({

    "fats.trans": { "$gte": 0.5 }

})



for item in my_cursor:

    print("Name: %s, Trans fats: %.2f" % 

        (item["name"], item["fats"]["trans"]))



# Output is:

#   Name: hamburger, Trans fats: 0.80

#   Name: taco, Trans fats: 0.50

8. Memperbarui dan Menghapus Dokumen

Sangat mirip dengan insert_one() dan insert_many() metodenya adalah update_one() dan update_many() metode, yang dapat Anda gunakan untuk mengubah konten dokumen yang sudah ada di dalam koleksi Anda. Kedua metode pembaruan, selain data baru, memerlukan kueri untuk membidik dokumen yang perlu diubah.

Anda dapat menggunakan berbagai operator pembaruan dalam metode pembaruan Anda. Yang paling umum digunakan adalah $set , yang memungkinkan Anda menambahkan bidang baru atau memperbarui nilai bidang yang ada. Kode berikut menunjukkan cara menambahkan dua bidang baru bernama fiber dan sugar ke dokumen yang name-nya bidang disetel ke "taco":

my_collection.update_one(

    { "name": "taco" }, # query

    {

        "$set": {       # new data

            "fiber": 3.95,

            "sugar": 0.9

        }

    }

)

Jika kueri yang Anda berikan ke update_one() metode mengembalikan lebih dari satu dokumen, hanya dokumen pertama yang diperbarui. update_many() metode tidak memiliki batasan ini.

Terakhir, dengan menggunakan delete_one() dan delete_many() metode, Anda dapat menghapus dokumen dalam koleksi Anda. Kedua metode tersebut membutuhkan query untuk menentukan dokumen mana yang perlu dihapus. Berikut cara menghapus semua dokumen yang calories bidang disetel ke nilai yang kurang dari 300:

my_collection.delete_many({

    "calories": {

        "$lt": 300

    }

})



# Deletes all the three documents

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb Jelaskan untuk kerangka Agregasi

  2. Bagaimana cara mendapatkan tanggal koleksi MongoDB dibuat menggunakan driver MongoDB C#?

  3. Daftar indeks di MongoDB?

  4. Kembalikan jenis bidang yang sebenarnya di MongoDB

  5. MongoDB-sebagai-Layanan di Kanada