Pengantar
MongoDB menggunakan struktur berorientasi dokumen untuk menyimpan, mengelola, dan memproses data. Dokumen individu diatur ke dalam koleksi, yang pada gilirannya, disimpan dalam database. Karena skema setiap dokumen tidak ditentukan oleh skema statis, sistem berbasis dokumen menawarkan lebih banyak fleksibilitas daripada sistem relasional yang terdiri dari tabel dan record.
Dalam panduan ini, kita akan berbicara tentang cara membuat dan mengelola struktur yang digunakan MongoDB untuk mengatur data. Kami akan membahas cara membuat dan mengelola database, lalu cara membuat koleksi untuk menyimpan dokumen serupa atau terkait.
Cara melihat database yang ada
Sebelum kita mulai membuat database baru, akan sangat membantu jika kita mengenal beberapa metode yang disediakan MongoDB untuk menemukan informasi tentang database yang ada. Ini dapat membantu Anda memahami status sistem saat ini sebelum Anda mulai membuat perubahan.
Untuk menampilkan semua database pada sistem yang Anda akses, gunakan show dbs
metode:
show dbs
admin 0.000GBconfig 0.000GBlocal 0.000GB
MongoDB akan merespons dengan nama semua database yang dapat diakses pada sistem serta ringkasan ruang penyimpanan mereka saat ini.
Untuk melihat database mana yang saat ini Anda setel untuk dioperasikan, gunakan db.getName()
perintah atau alias singkatannya, db
:
db
test
Anda mungkin menemukan bahwa Anda sedang menggunakan database yang tidak terdaftar oleh show dbs
memerintah. Ini karena di MongoDB, sampai Anda menulis dokumen pertama ke database, database tidak benar-benar dibuat. Jadi, pada contoh output di atas, shell disiapkan untuk beroperasi pada test
database, tetapi karena belum ada, maka tidak akan dikembalikan oleh show dbs
perintah.
Untuk beralih ke database yang berbeda, Anda dapat menggunakan use
perintah:
use admin
switched to db admin
Untuk mendapatkan beberapa informasi dasar tentang database Anda saat ini, Anda dapat menggunakan db.stats()
metode:
db.stats()
{ "db" : "admin", "collections" : 3, "views" : 0, "objects" : 4, "avgObjSize" : 278.25, "dataSize" : 1113, "storageSize" : 86016, "indexes" : 5, "indexSize" : 147456, "totalSize" : 233472, "scaleFactor" : 1, "fsUsedSize" : 2876923904, "fsTotalSize" : 25832407040, "ok" : 1}
Outputnya menunjukkan informasi tentang jumlah koleksi dalam database, statistik penyimpanan, informasi indeks, dan banyak lagi.
Cara membuat database
MongoDB tidak memiliki perintah eksplisit untuk membuat database baru. Sebagai gantinya, seperti yang disebutkan sebelumnya, Anda harus menunjukkan kepada MongoDB bahwa Anda ingin menulis dokumen baru ke database baru. Ketika dokumen tersebut dibuat, mereka akan secara implisit membuat database.
Untuk mempersiapkan MongoDB untuk menulis ke database baru, keluarkan use
perintah untuk beralih ke database yang tidak ada.
Di sini, kita akan mengatur MongoDB untuk membuat database baru bernama playground
:
use playground
switched to db playground
Jika Anda memeriksa database Anda saat ini, itu akan mengonfirmasi bahwa playground
database saat ini menjadi target perintah terkait database:
db
playground
Namun, seperti yang disebutkan sebelumnya, karena kami belum membuat dokumen apa pun, database itu sendiri belum dibuat:
show dbs
admin 0.000GBconfig 0.000GBlocal 0.000GB
Untuk benar-benar membuat database baru, kita perlu membuat sesuatu terlebih dahulu.
Cara melihat koleksi dalam database
Di MongoDB, koleksi adalah struktur yang digunakan untuk mengelompokkan dokumen bersama-sama menggunakan sistem kategorisasi apa pun yang ingin Anda terapkan. Mereka tinggal di dalam database dan menyimpan dokumen.
Anda dapat melihat koleksi yang tersedia di database yang sedang Anda gunakan dengan menggunakan show collections
metode.
Di sini, kita akan beralih ke admin
database yang memiliki beberapa koleksi yang tersedia untuk didemonstrasikan:
use adminshow collections
system.rolessystem.userssystem.version
Atau, Anda dapat mengambil nama koleksi yang sama dalam larik menggunakan db.getCollectionNames()
metode:
db.getCollectionNames()
[ "system.roles", "system.users", "system.version" ]
Untuk menampilkan informasi tambahan tentang koleksi di database saat ini, gunakan db.getCollectionInfos()
metode:
db.getCollectionInfos()
[ { "name" : "system.roles", "type" : "collection", "options" : { }, "info" : { "readOnly" : false, "uuid" : UUID("776b1fd7-6014-4191-b33c-21350b590627") }, "idIndex" : { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" } }, { "name" : "system.users", "type" : "collection", "options" : { }, "info" : { "readOnly" : false, "uuid" : UUID("8c824fd1-2150-4413-8fac-0b77d16505e5") }, "idIndex" : { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" } }, { "name" : "system.version", "type" : "collection", "options" : { }, "info" : { "readOnly" : false, "uuid" : UUID("7501483a-45cc-492e-a1fd-ccb4349650cb") }, "idIndex" : { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" } }]
Anda juga dapat secara opsional meneruskan dokumen ke perintah untuk memfilter hasil. Misalnya, jika Anda hanya tertarik untuk melihat informasi tentang system.version
koleksi, Anda dapat mengetik:
db.getCollectionInfos( { name: "system.version" })
[ { "name" : "system.version", "type" : "collection", "options" : { }, "info" : { "readOnly" : false, "uuid" : UUID("7501483a-45cc-492e-a1fd-ccb4349650cb") }, "idIndex" : { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" } }]
Untuk memeriksa berapa banyak dokumen yang berisi koleksi, gunakan db.<collection>.count()
metode. Misalnya, perintah berikut memeriksa berapa banyak dokumen yang ada di system.users
koleksi:
db.system.users.count()
2
Untuk melihat statistik dasar tentang koleksi dalam database saat ini, gunakan db.printCollectionStats()
metode:
db.printCollectionStats()
Perintah tersebut mungkin mengeluarkan lebih banyak informasi daripada yang dapat Anda konsumsi dengan mudah, tetapi berisi, tetapi berguna dalam beberapa skenario di mana Anda perlu melihat lebih dalam pada karakteristik koleksi.
Cara membuat koleksi
Untuk membuat koleksi baru, ada dua opsi:Anda dapat membuat koleksi baik secara implisit maupun eksplisit.
Seperti halnya database, MongoDB dapat secara otomatis membuat koleksi saat pertama kali sebuah dokumen ditulis untuk mereka. Metode ini memberitahu MongoDB untuk membuat koleksi baru dengan memasukkan dokumen ke dalam koleksi yang belum ada.
Misalnya, kita dapat mengubah kembali ke playground
database yang kami minati sebelumnya. Setelah kita berada di namespace itu, kita bisa menyisipkan dokumen baru ke dalam koleksi dengan memanggil insert.()
perintah pada nama yang ingin kita gunakan untuk koleksi baru. Di sini, kita dapat membuat dokumen tentang slide dalam koleksi baru yang disebut equipment
:
use playgrounddb.equipment.insert({name: "slide"})
switched to db playgroundWriteResult({ "nInserted" : 1 })
Output menunjukkan bahwa satu dokumen telah ditulis. Perintah di atas melakukan tiga tindakan terpisah. Pertama, MongoDB membuat playground
database yang kami rujuk dalam use
memerintah. Itu juga menciptakan equipment
koleksi dalam database karena kita memanggil insert()
perintah pada nama koleksi itu. Terakhir, ia membuat dokumen aktual di dalam equipment
koleksi menggunakan input yang kami berikan ke insert()
perintah.
Anda dapat memverifikasi bahwa semua tindakan ini telah dilakukan dengan perintah berikut:
show dbsshow collectionsdb.equipment.count()db.equipment.find()
Outputnya harus menunjukkan bahwa playground
database sekarang di antara database yang terdaftar, bahwa equipment
koleksi terdaftar, bahwa ada satu dokumen di dalam equipment
koleksi, dan bahwa dokumen tersebut adalah {name: "slide"}
dokumen yang kita masukkan ke dalam perintah.
Opsi lain yang digunakan untuk membuat koleksi adalah secara eksplisit menggunakan db.createCollection()
metode. Ini memungkinkan Anda membuat koleksi tanpa menambahkan dokumen apa pun ke dalamnya.
Misalnya, Anda dapat membuat koleksi baru di playground
database bernama maintenance.requests
dengan mengetik:
db.createCollection("maintenance.requests")
{ "ok" : 1 }
Kami dapat memverifikasi bahwa koleksi baru muncul saat kami memintanya, tetapi tidak memiliki dokumen:
show collectionsdb.maintenance.requests.count()
equipmentmaintenance.requests0
db.createCollection()
metode ini terutama berguna karena memungkinkan Anda untuk menentukan berbagai opsi saat pembuatan. Misalnya, kita mungkin ingin membuat sebuah koleksi yang dibatasi , yang merupakan kumpulan yang mempertahankan batas atas pada ukuran yang dialokasikan yang disimpannya dengan menghapus dokumen terlamanya saat penuh.
Untuk membuat koleksi terbatas yang disebut notifications
yang dapat menyimpan, paling banyak, 10240 byte informasi, Anda dapat menghubungi:
db.createCollection( "notifications", { capped: true, size: 10240 })
{ "ok" : 1}
Ini akan membuat notification
yang dibatasi koleksi, yang dapat kami verifikasi dengan mengetik:
db.getCollecitonInfos({"options.capped": true})
[ { "name" : "notifications", "type" : "collection", "options" : { "capped" : true, "size" : 10240 }, "info" : { "readOnly" : false, "uuid" : UUID("dff7bfb0-1cfc-4170-ba60-fbb834ac6925") }, "idIndex" : { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" } }]
Cara menghapus koleksi
Untuk menghapus koleksi, Anda dapat menggunakan drop()
metode pada koleksi itu sendiri.
Misalnya, untuk menghapus notification
. yang dibatasi koleksi yang kami buat, Anda dapat mengetik:
db.notifications.drop()
true
Anda dapat memverifikasi bahwa operasi berhasil dengan mendaftar koleksi di database saat ini lagi:
show collections
equipmentmaintenance.requests
Cara menghapus database
Untuk menghapus seluruh database, panggil db.dropDatabase()
memerintah. Ini akan menghapus database saat ini, jadi pastikan Anda berada di database yang benar sebelum menjalankan:
use playgrounddb.dropDatabase()
switched to db playground{ "dropped" : "playground", "ok" : 1 }
Jika Anda memeriksa daftar database yang tersedia, playground
tidak lagi ditampilkan:
show dbs
admin 0.000GBconfig 0.000GBlocal 0.000GB
Karena kita belum beralih ke database baru, MongoDB masih diatur untuk membuat playground
database harus kita pilih untuk menambahkan koleksi atau dokumen baru. Anda dapat memverifikasi ini dengan db
perintah:
db
playground
Kesimpulan
Membuat dan mengelola database dan koleksi adalah keterampilan penting saat menggunakan MongoDB. Alat organisasi dasar ini memungkinkan Anda untuk mengelompokkan dokumen terkait, menanyakan subset informasi, dan menyiapkan kebijakan otorisasi untuk berbagai jenis data. Memahami cara mengelola struktur ini secara efektif akan memungkinkan Anda mengelola data secara lebih efektif dengan lebih sedikit kejutan.