Belajar MongoDB

Belajar MongoDB: 1. Membuat Database dan Collection

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.