Setelah mengetahui Apa itu MongoDB dan Apa saja Fitur di Dalamnya? serta Kelebihan dan Kekurangan MongoDB, saatnya kita belajar bareng MongoDB. Artikel ini akan membahas basic query pada MongoDB khususnya membuat database dan collections.
Pada kesempatan ini kita akan awali bagaimana menjalan MongoDB pada Docker, lalu bagaimana membuat database dan collections pada MongoDB.
Tanpa perlu ba bi bu alias basa-basi lagi, langsung saja kita mulai belajar bareng MongoDB kita kali ini. Bagi teman-teman yang ingin belajar barengnya melalui video bisa juga dengan melihat video di di bawah ini.
Menjalankan MongoDB pada Docker
Jika kamu ingin menjalankan MongoDB pada docker, maka caranya cukup mudah, cukup ikuti langkah-langkah di bawah ini. Langkah-langkah ini saya jalankan pada docker yang saya install di MacOS.
- Download MongoDB Docker image
Langkah pertama adalah kamu perlu download terlebih dahulu MongoDB image, dengan execute code di bawah ini melalui Terminal:
docker pull mongodb/mongodb-community-server
- Jalankan file image dalam container Docker
Setelah selesai mengunduh MongoDB Docker image, maka langkah selanjutnya adalah menjalankan image tersebut sebagai container pada Docker. Eksekusi code di bawah ini melalui Terminal kamu:
docker run --name mongo -d mongodb/mongodb-community-server:latest
Jika sudah selesai dan berhasil maka akan terbentuk container baru di Docker kamu dengan nama “mongo” sesuai code di atas. Jika kamu ingin membuat dengan nama berbeda, kamu bisa mengganti kata “mongo” pada code di atas setelah “–name” sesuai nama container yang kamu inginkan.
- Cek apakah container sudah running
Setelah kamu berhasil membuat container, cek apakah container kamu sudah running atau belum. Kamu bisa cek dengan eksekusi code di bawah ini pada Terminal kamu:
docker container ls
Jika sudah running maka, Terminal akan menunjukkan informasi:
Container ID
Image
Command
Created
Status
Port
Names
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f14c5c191cdf mongodb/mongodb-community-server:latest "python3 /usr/local/…" 44 seconds ago Up 42 seconds 27017/tcp mongo
Kamu juga bisa mengecek pada Docker kamu, jika container kamu sudah running maka akan berwarna hijau dan icon “play” sudah berubah menjadi icon “stop”.
- Koneksikan Terminal ke MongoDB deployment dengan Mongosh
Eksekusi kode di bawah ini:
docker exec -it mongo mongosh
- Validasi bahwa MongoDB instance kamu sudah running
Untuk mem-validasi apakah MongoDB instance kamu sudah running kamu dapat menggunakan perintah “Hello” berikut ini:
db.runCommand(
{
hello: 1
}
)
Hasil perintah tersebut akan mengembalikan hasil dokumen yang mendeskripsikan MongoDB deployment kamu:
{
isWritablePrimary: true,
topologyVersion: {
processId: ObjectId("64aa39978b34de2dc9978777"),
counter: Long("0")
},
maxBsonObjectSize: 16777216,
maxMessageSizeBytes: 48000000,
maxWriteBatchSize: 100000,
localTime: ISODate("2023-07-09T04:45:28.281Z"),
logicalSessionTimeoutMinutes: 30,
connectionId: 3,
minWireVersion: 0,
maxWireVersion: 17,
readOnly: false,
ok: 1
}
Membuat Database dan Collection pada MongoDB
Setelah kamu berhasil menjalankan MongoDB pada Docker kamu, maka kamu sudah bisa membuat database MongoDB.
Namun, sebelum membuat database, eksekusi code dibawah ini untuk melihat daftar database yang ada dalam MongonDB container kamu.
show dbs
Terminal akan memberikan hasil berupa daftar database default yang ada pada MongoDB container kamu seperti ini:
admin 40.00 KiB
config 60.00 KiB
local 40.00 KiB
Untuk membuat database baru, kamu cukup eksekusi perintah use.NamaDatabase seperti di bawah ini:
use MyFirstDatabase
Maka kamu akan masuk ke Database tersebut. Silahkan ganti NamaDatabase sesuai dengan keinginan kamu. Lalu kamu coba lagi untuk eksekusi code:
show dbs
Maka hasil dari perintah di atas adalah tetap seperti pada hasil sebelumnya. Database baru yang kamu buat belum masuk ke dalam daftar. Kemana MyFirstDatabase?
Perlu diketahui, bahwa MongoDB sebenarnya baru akan benar-benar membuat database jika kamu sudah menambahkan data ke dalam database tersebut.
Selanjutnya, kamu dapat membuat collection baru dan sekaligus insert data (dalam terminologi MongoDB disebut dengan document). Misalnya kita akan membuat collection user dan insert sebuah document, eksekusi code db.NamaCollection.insert(), seperti contoh di bawah ini:
db.user.insert({name: "John Doe", age:30, born:"1991-02-02"})
Setelah berhasil, coba kamu eksekusi kembali code dibawah ini:
show dbs
MyFirstDatabase akan muncul di dalam daftar karena sudah benar-benar terbentuk setelah kamu insert data. Begini respon dari perintah show dbs tersebut sekarang:
MyFirstDatabase 40.00 KiB
admin 40.00 KiB
config 108.00 KiB
local 40.00 KiB
Oke, jadi sekarang kita memiliki sebuah collection bernama “user”. Jika kamu ingin menampilkan collection apa saja yang kita punya dalam sebuah database, maka kamu dapat eksekusi code di bawah ini:
show collections
Maka pada Terminal akan memunculkan daftar collection pada database tersebut. Contohnya seperti ini:
user
Karena kita baru memiliki satu collection dengan nama “user” maka respon dari perintah show collections sekarang hanya memunculkan user di dalam list.
Kamu bisa mencoba untuk membuat collection baru, misalnya masterbank seperti pada code di bawah ini:
db.masterbank.insert({code:"BCA", bank_name:"Bank Central Asia"})
Setelah berhasil, silahkan dicoba kembali untuk eksekusi code show collections. Sekarang kamu punya 2 data pada daftar collection kamu, yaitu user dan masterbank.
Kemudian untuk memunculkan semua document yang tersimpan dalam sebuah collection, kamu dapat menggunakan perintah db.NamaCollection.find(). Contoh:
db.user.find()
Pada Terminal akan memberikan respon seperti di bawah ini:
[
{
_id: ObjectId("64aab62e78e6e16538f28a92"),
name: 'John Doe',
age: 30,
born: '1991-02-02'
}
]
Jika kamu menambahkan data atau document kedua pada user collection, misalnya:
db.user.insert({name:"Ashley", age: 25, born:"1998-08-17", hobby: "cooking"})
Pada data kedua ini, sengaja kita tambahkan field “hobby”. Jika kita menggunakan relational database, hal ini sangat tidak memungkinkan kita eksekusi secara langsung. Perlu ada perubahan pada struktur tabel terlebih dahulu. Akan tetapi, MongoDB yang merupakan non relational database, penambahan field di setiap record data dapat dilakukan dengan sangat mudah.
Sekarang jika kamu eksekusi code di bawah ini:
db.user.find()
Akan memberikan respon:
[
{
_id: ObjectId("64aab62e78e6e16538f28a92"),
name: 'John Doe',
age: 30,
born: '1991-02-02'
},
{
_id: ObjectId("64aab7e578e6e16538f28a94"),
name: 'Ashley',
age: 25,
born: '1998-08-17',
hobby: 'cooking'
}
]
Perhatikan respon tersebut, pada document kedua dengan user “Ashley” terdapat field baru “hobby”. Sementara data sebelumnya tidak memiliki field tersebut.
Tutorial ini akan berlanjut ke artikel selanjutnya, belajar bareng MongoDB untuk topik CRUD (Created, Read, Update, Delete). Terima kasih sudah membaca.
Leave a Reply