MongoDB - trakter/Docs GitHub Wiki
1337SYNDICATE
Python MongoDB
Didokumentasi oleh 1337Syndicate.
Mengenal Python MongoDB
PyMongo adalah distribusi Python yang berisi alat untuk bekerja dengan MongoDB, MongoDB adalah sistem basis data berorentasi dokumen lintas platform. Diklasifikasikan sebagai basis data "NoSQL", MongoDB menghindari struktur basis data relasional tabel berbasis tradisional yang mendukung JSON seperti dokumen dengan skema dinamis (MongoDB menyebutnya sebagai format BSON), membuat integrasi data dalam beberapa jenis aplikasi lebih mudah dan lebih cepat. Python dapat digunakan dalam aplikasi database, salah satunya database NoSQL yang paling populer adalah MongoDB.
Menginstal PyMongo
Menginstal PyMongo dapat di lakukan melalui perintah pip.
pip install pymongo
Melihat apakah instalasi berhasil atau tidak jika kita sudah menginstal pymongo, buatlah halaman Python dengan nama misalnya mongodb.py
import pymongo
Jika kode dijalankan tanpa kesalahan, artinya pymongo telah terinstal dan siap digunakan.
Memahami Cara Membuat Database pada MongoDB
Membuat database di MongoDB, mulailah dengan membuat objek MongoClient, lalu tentukan URL koneksi dengan alamat ip yang benar dan nama database yang ingin kita buat.
- Membuat Database
Contohnya
import pymongo
mongoclient = pymongo.MongoClient("mongodb://localhost:27017/")
db = mongoclient["perpustakaan"]
Kita membuat database dengan nama perpustakaan.
Di MongoDB, database tidak dibuat sampai mendapatkan konten. MongoDB menunggu hingga kita membuat koleksi (tabel), dengan setidaknya satu dokumen (catatan) sebelum benar-benar membuat database (dan koleksi).
- Melihat Database pada MongoDB
Kita akan melihat apakah database kita ada. Kita dapat melihat apakah ada database dengan mendaftar semua database di sistem yang telah kita buat.
Mengembalikan daftar database.
Contohnya
print(mongoclient.list_database_names())
import pymongo
mongoclient = pymongo.MongoClient("mongodb://localhost:27017/")
print(mongoclient.list_database_names())
Memahami Cara Membuat Collection pada MongoDB
Koleksi di MongoDB sama dengan tabel di database SQL. Membuat koleksi di MongoDB, gunakan objek database dan tentukan nama koleksi yang ingin kita buat.
- Membuat Koleksi
Contohnya
import pymongo
mongoclient = pymongo.MongoClient("mongodb://localhost:27017/")
db = mongoclient["perpustakaan"]
mongocol = db["buku"]
Kita membuat koleksi dengan nama buku.
Di MongoDB, koleksi tidak dibuat sampai mendapatkan konten. MongoDB menunggu hingga kita memasukkan dokumen sebelum benar-benar membuat koleksi.
- Melihat Koleksi
Kita dapat memeriksa apakah ada koleksi dalam database dengan mendaftar semua koleksi.
Mengembalikan daftar semua koleksi di database.
Contohnya
print(db.list_collection_names())
import pymongo
mongoclient = pymongo.MongoClient("mongodb://localhost:27017/")
db = mongoclient["perpustakaan"]
mongocol = db["buku"]
print(db.list_collection_names())
Memahami Cara Melakukan Insert pada MongoDB
Dokumen di MongoDB sama dengan catatan di database SQL.
- Masukkan Koleksi
Menyisipkan catatan, atau dokumen seperti yang disebut di MongoDB, ke dalam koleksi, kita menggunakan insert_one() metode.
Parameter pertama dari insert_one()metode ini adalah kamus yang berisi nama dan nilai setiap field dalam dokumen yang ingin kita sisipkan.
Masukkan catatan dalam koleksi buku.
Contohnya
import pymongo
mongoclient = pymongo.MongoClient("mongodb://localhost:27017/")
db = mongoclient["perpustakaan"]
mongocol = db["buku"]
daftarbuku = { "namabuku": "MongoDB" }
notes = mongocol.insert_one(daftarbuku)
print(notes)
- Mengembalikan _id
Metode insert_one() mengembalikan objek InsertOneResult, yang memiliki properti, inserted_id, yang menyimpan id dari dokumen yang disisipkan.
Memasukkan catatan lain dalam koleksi "buku", dan Mengembalikan nilai _id.
Contohnya
import pymongo
mongoclient = pymongo.MongoClient("mongodb://localhost:27017/")
db = mongoclient["perpustakaan"]
mongocol = db["buku"]
daftarbuku = { "namabuku": "MongoDB" }
notes = mongocol.insert_one(daftarbuku)
print(notes.inserted_id)
Jika kita tidak menentukan _id nya, maka MongoDB akan menambahkan satu untuk kita dan menetapkan id unik untuk setiap dokumen.
Dalam contoh kita tidak ada _id yang ditentukan, jadi MongoDB menetapkan _id unik untuk catatan (dokumen).
- Memasukan Banyak Dokumen
Menyisipkan beberapa dokumen ke dalam koleksi di MongoDB, kita menggunakan insert_many() metode.
Parameter pertama dari insert_many() metode ini adalah daftar yang berisi kamus dengan data yang ingin kita masukkan.
Contohnya
import pymongo
mongoclient = pymongo.MongoClient("mongodb://localhost:27017/")
db = mongoclient["perpustakaan"]
mongocol = db["buku"]
daftarbuku = [
{ "namabuku": "React"},
{ "namabuku": "Node.js"},
{ "namabuku": "Django"},
{ "namabuku": "Git"},
{ "namabuku": "MongoDB"},
]
notes = mongocol.insert_many(daftarbuku)
print(notes.inserted_ids)
Metode insert_many() mengembalikan objek InsertManyResult, yang memiliki properti, inserted_ids, yang menyimpan id dari dokumen yang disisipkan.
- Memasukkan Beberapa Dokumen dengan Membuat _id Tertentu
Jika kita tidak ingin MongoDB menetapkan _id unik untuk dokumen kita, kita dapat menentukan _id nya saat kita memasukkan dokumen, dokumen tidak boleh memiliki _id yang sama.
Contohnya
import pymongo
mongoclient = pymongo.MongoClient("mongodb://localhost:27017/")
db = mongoclient["perpustakaan"]
mongocol = db["buku"]
daftarbuku = [
{ "_id": 10, "namabuku": "React"},
{ "_id": 33, "namabuku": "Node.js"},
{ "_id": 11, "namabuku": "Django"},
{ "_id": 30, "namabuku": "Git"},
{ "_id": 37, "namabuku": "MongoDB"},
]
notes = mongocol.insert_many(daftarbuku)
print(notes.inserted_ids)
Memahami Cara Melakukan Find pada MongoDB
Di MongoDB kita menggunakan metode find dan findOne untuk menemukan data dalam koleksi. Sama seperti pernyataan SELECT yang digunakan untuk mencari data dalam tabel di database MySQL.
- Menemukan Satu Data pada MongoDB
Memilih data dari koleksi di MongoDB, kita dapat menggunakan find_one() metode. Metode find_one() mengembalikan kemunculan pertama dalam seleksi.
Memukan dokumen pertama dalam koleksi buku.
import pymongo
mongoclient = pymongo.MongoClient("mongodb://localhost:27017/")
db = mongoclient["perpustakaan"]
mongocol = db["buku"]
notes = mongocol.find_one()
print(notes)
- Menemukan Semua Data pada MongoDB
Memilih data dari tabel di MongoDB, kita juga bisa menggunakan find() metode. Metode find() mengembalikan semua kejadian dalam seleksi.
Parameter pertama dari find() metode ini adalah objek kueri. Dalam contoh ini kita menggunakan objek kueri kosong, yang memilih semua dokumen dalam koleksi.
Tidak ada parameter dalam metode find() yang memberi kita hasil yang sama seperti SELECT * di MySQL.
Mengembalikan semua dokumen dalam koleksi buku, dan cetak setiap dokumen.
Contohnya
import pymongo
mongoclient = pymongo.MongoClient("mongodb://localhost:27017/")
db = mongoclient["perpustakaan"]
mongocol = db["buku"]
for notes in mongocol.find():
print(notes)
- Mengembalikan Hanya Beberapa Field
Parameter kedua dari find() metode ini adalah objek yang menjelaskan field mana yang akan disertakan dalam hasil. Parameter ini opsional, dan jika dihilangkan, semua field akan disertakan dalam hasil.
Mengembalikan hanya nama dan bukan _id.
Contohnya
import pymongo
mongoclient = pymongo.MongoClient("mongodb://localhost:27017/")
db = mongoclient["perpustakaan"]
mongocol = db["buku"]
for notes in mongocol.find({},{ "_id": 0, "namabuku": 1 }):
print(notes)
Kita tidak diperbolehkan untuk menentukan nilai 0 dan 1 dalam objek yang sama (kecuali jika salah satu field adalah field _id). Jika kita menentukan field dengan nilai 0, semua bidang lainnya mendapatkan nilai 1, dan sebaliknya. Nilai 0 mengecualikan _id yang akan dikembalikan sedangkan nilai 1 akan mengembalikan namabuku.
Memahami Cara Melakukan Query pada MongoDB
- Memfilter Hasil
Saat menemukan dokumen dalam koleksi, kita bisa memfilter hasilnya dengan menggunakan objek kueri. Argumen pertama dari find() metode ini adalah objek kueri, dan digunakan untuk membatasi pencarian.
Contoh menemukan dokumen dengan namabuku MongoDB.
Contohnya
import pymongo
mongoclient = pymongo.MongoClient("mongodb://localhost:27017/")
db = mongoclient["perpustakaan"]
mongocol = db["buku"]
mongoquery = { "namabuku": "MongoDB" }
mongodoc = mongocol.find(mongoquery)
for notes in mongodoc:
print(notes)
- Kueri Lanjutan
Membuat kueri tingkat lanjut, kita dapat menggunakan pengubah sebagai nilai dalam objek kueri. Misalnya untuk menemukan dokumen di mana field namabuku dimulai dengan huruf N atau lebih tinggi (berdasarkan abjad), gunakan pengubah lebih besar dari: {"$gt": "N"}.
Contoh menemukan dokumen namabuku dimulai dengan huruf N atau lebih tinggi.
Contohnya
import pymongo
mongoclient = pymongo.MongoClient("mongodb://localhost:27017/")
db = mongoclient["perpustakaan"]
mongocol = db["buku"]
mongoquery = { "namabuku": { "$gt": "N" } }
mongodoc = mongocol.find(mongoquery)
for notes in mongodoc:
print(notes)
- Memfilter dengan Ekspresi Reguler
Kita juga dapat menggunakan ekspresi reguler sebagai pengubah. Ekspresi reguler hanya dapat digunakan untuk query string.
Menemukan hanya dokumen di mana field namabuku dimulai dengan huruf N, gunakan ekspresi reguler {"$regex": "^N"}.
Contoh menemukan dokumen namabuku dimulai dengan huruf "N".
Contohnya
import pymongo
mongoclient = pymongo.MongoClient("mongodb://localhost:27017/")
db = mongoclient["perpustakaan"]
mongocol = db["buku"]
mongoquery = { "namabuku": { "$regex": "^N" } }
mongodoc = mongocol.find(mongoquery)
for notes in mongodoc:
print(notes)
Memahami Cara Melakukan Sort pada MongoDB
- Mengurutkan Hasil dari MongoDB
Mengunakan sort() metode untuk mengurutkan hasil dalam urutan menaik atau menurun. Metode sort() ini mengambil satu parameter untuk nama field dan satu parameter untuk arah (naik adalah arah default).
Contoh mengurutkan hasil dari MongoDB menurut abjad berdasarkan namabuku.
Contohnya
import pymongo
mongoclient = pymongo.MongoClient("mongodb://localhost:27017/")
db = mongoclient["perpustakaan"]
mongocol = db["buku"]
mongodoc = mongocol.find().sort("namabuku")
for notes in mongodoc:
print(notes)
- Mengurutkan Turunan dari MongoDB
Mengunakan nilai -1 sebagai parameter kedua untuk mengurutkan secara descending.
- ascending
sort("namabuku", 1)
- descending
sort("namabuku", -1)
Contoh mengurutkan hasil terbalik menurut abjad dengan namabuku.
Contohnya
import pymongo
mongoclient = pymongo.MongoClient("mongodb://localhost:27017/")
db = mongoclient["perpustakaan"]
mongocol = db["buku"]
mongodoc = mongocol.find().sort("namabuku", -1)
for notes in mongodoc:
print(notes)
Memahamai Cara Melakukan Delete pada MongoDB
- Menghapus Dokumen
Menghapus satu dokumen, kita menggunakan delete_one() metode. Parameter pertama dari delete_one() metode ini adalah objek kueri yang menentukan dokumen mana yang akan dihapus. Jika kueri menemukan lebih dari satu dokumen, hanya kemunculan pertama yang dihapus.
Contoh menghapus dokumen dari namabuku "MongoDB".
Contohnya
import pymongo
mongoclient = pymongo.MongoClient("mongodb://localhost:27017/")
db = mongoclient["perpustakaan"]
mongocol = db["buku"]
mongoquery = { "namabuku": "MongoDB" }
mongocol.delete_one(mongoquery)
for notes in mongocol.find():
print(notes)
- Menghapus Banyak Dokumen
Menghapus lebih dari satu dokumen, gunakan delete_many() metode. Parameter pertama dari delete_many() metode ini adalah objek kueri yang menentukan dokumen mana yang akan dihapus.
Contoh Menghapus semua dokumen dari namabuku dimulai dengan huruf N.
Contohnya
import pymongo
mongoclient = pymongo.MongoClient("mongodb://localhost:27017/")
db = mongoclient["perpustakaan"]
mongocol = db["buku"]
mongoquery = { "namabuku": {"$regex": "^N"} }
notes = mongocol.delete_many(mongoquery)
print(notes.deleted_count, "dokumen telah dihapus.")
- Menghapus Semua Dokumen dalam Koleksi
Menghapus semua dokumen dalam koleksi, teruskan objek kueri kosong ke delete_many() metode.
Contoh menghapus semua dokumen dalam koleksi buku.
Contohnya
import pymongo
mongoclient = pymongo.MongoClient("mongodb://localhost:27017/")
db = mongoclient["perpustakaan"]
mongocol = db["buku"]
notes = mongocol.delete_many({})
print(notes.deleted_count, "dokumen telah dihapus.")
Memahamai Cara Melakukan Drop Collection pada MongoDB
- Menghapus Koleksi
Kita dapat menghapus tabel, atau koleksi seperti yang disebut di MongoDB, dengan menggunakan drop() metode.
Contoh menghapus koleksi buku.
Contohnya
import pymongo
mongoclient = pymongo.MongoClient("mongodb://localhost:27017/")
db = mongoclient["perpustakaan"]
mongocol = db["buku"]
mongocol.drop()
Metode drop() mengembalikan nilai true jika koleksi berhasil dijatuhkan, dan false jika koleksi tidak ada.
Memahamai Cara Melakukan Update pada MongoDB
- Memperbarui Koleksi
Kita dapat memperbarui catatan, atau dokumen seperti yang disebut di MongoDB, dengan menggunakan update_one() metode. Parameter pertama dari update_one() metode ini adalah objek kueri yang menentukan dokumen mana yang akan diperbarui. Jika kueri menemukan lebih dari satu rekaman, hanya kemunculan pertama yang diperbarui. Parameter kedua adalah objek yang mendefinisikan nilai baru dari dokumen.
Contoh merubah namabuku dari Django menjadi Node.js.
Contohnya
import pymongo
mongoclient = pymongo.MongoClient("mongodb://localhost:27017/")
db = mongoclient["perpustakaan"]
mongocol = db["buku"]
mongoquery = { "namabuku": "Django" }
mongonewvalues = { "$set": { "namabuku": "Node.js" } }
mongocol.update_one(mongoquery, mongonewvalues)
for notes in mongocol.find():
print(notes)
- Memperbarui Banyak Dokumen dari MongoDB
Memperbarui semua dokumen yang memenuhi kriteria kueri, gunakan update_many() metode.
Contoh memperbarui semua dokumen dari namabuku dimulai dengan huruf N.
Contohnya
import pymongo
mongoclient = pymongo.MongoClient("mongodb://localhost:27017/")
db = mongoclient["perpustakaan"]
mongocol = db["buku"]
mongoquery = { "namabuku": { "$regex": "^N" } }
mongonewvalues = { "$set": { "namabuku": "Laravel" } }
notes = mongocol.update_many(mongoquery, mongonewvalues)
print(notes.modified_count, "dokumen telah diperbarui.")
Memahami Cara Melakukan Limit pada MongoDB
- Membatasi Hasil dari MongoDB
Membatasi hasil dari MongoDB, kita menggunakan limit() metode. Metode limit() ini mengambil satu parameter, angka yang menentukan berapa banyak dokumen yang akan dikembalikan.
Contoh membatasi hasil untuk hanya mengembalikan 3 dokumen dari MongoDB.
Contohnya
import pymongo
mongoclient = pymongo.MongoClient("mongodb://localhost:27017/")
db = mongoclient["perpustakaan"]
mongocol = db["buku"]
mongoresult = mongocol.find().limit(3)
for notes in mongoresult:
print(notes)