Pada part ini kita akan mulai menggunakan MongoDB Shell untuk lebih mengenal MongoDB dalam penggunaannya, terlebih dalam pengoperasian fungsi query NoSQL database.
Untuk memulai menggunakan MongoDB Shell, pastikan terlebih dahulu service MongoDB sudah dijalankan. Untuk dapat mengakses server secara kustom, seperti hostname/IP server, port dan database, gunakan perintah berikut dari terminal:
mongo host_server:27017/myDB <== 27017 port default MongoDB
Contoh di atas diasumsikan kita sudah mempunyai database yang akan diakses, namun bila kita belum punya database maka gunakan perintah berikut:
mongo
> help <== untuk melihat kumpulan perintah shell
> show dbs <== menampilkan nama database
> use myDB <== gunakan database myDB atau buat db myDB
> exit <== keluar dari shell
Contoh perintah di atas adalah untuk kasus memulai akses database, bila nantinya kita sudah punya database yang akan dihandle maka saya pribadi lebih senang menggunakan cara berikut ini:
mongo --nodb
> conn
= new Mongo("host_server:27017")
> db = conn.getDB("myDB")
Cukup sederhana dan tentunya lebih terlihat terstruktur, akan tetapi bukan berarti harus menggunakannya, mungkin ada cara lain yang lebih bagus yang bisa ditemukan di internet.
Seperti yang kita tahu sebelumnya kalau "mongo" sederhananya adalah JavaScript shell, dengan begitu kita bisa melihat JavaScript dokumentasi sebagai referensi. Untuk fungsi MongoDB secara spesific, sudah terdapat fungsi built-in yang dapat dilihat dengan perintah "help" seperti contoh sebelumnya di atas.
Untuk tingkatan level tersedia melalui parameter masing-masing, misalnya level database (berada dalam shell database yang digunakan) yaitu "db.help()" dan untuk level collection yaitu "db.nmcollection.help()"
Ada hal yang mungkin bisa dikatakan unik dalam MongoDB shell, misalkan kita ingin mengetahui seperti apa sebuah fungsi bekerja dalam mengolah data, dalam hal ini kita ingin mengetahui bagaimana fungsi update bekerja, maka cukup lakukan perintah berikut melalui shell:
> db.books.update
Dari hasil diatas maka akan tampak barisan kode JavaScript yang menghandle fungsi tersebut. Perlu diketahui, pada contoh tersebut kita tidak menggunakan tanda kurung "()" pada akhir nama fungsi, hal ini bertujuan untuk menguak isi dari fungsi tersebut, tetapi bisa kita menggunakan tanda kurung "()" pada nama fungsi tersebut "update()" maka berarti fungsi akan dieksekusi.
Part 1: Tutorial MongoDB: Pengenalan MongoDB - Part 1
Part 2: Tutorial MongoDB: Mengoperasikan MongoDB - Part 2
Part 3: Tutorial MongoDB: Tipe Data MongoDB - Part 3
Part 4: Tutorial MongoDB: Tipe Data MongoDB (Tambahan) - Part 4
Part 5: Tutorial
MongoDB: Dasar MongoDB Shell - Part 5
Part 6: Tutorial MongoDB: Operasi CRUD - Part 6
Itulah sedikit dasar dalam menggunakan MongoDB shell, jika ada yang salah ataupun ada hal yang ingin ditanyakan silakan isi komentar dibawah, dan jangan lupa tetap kunjungi blog ini ataupun bookmark label tag mongodb untuk update part selanjutnya.
MongoDB adalah database yang berorientasi pada dokumen atau document oriented database. MongoDB disebut sebagai document oriented database karena cara kerja nya dalam menyimpan data. dalam MongoDB, data akan disimpan dalam sebuah collection, dimana setiap data tersebut disebut sebagai document. MongoDB masuk dalam keluarga
noSQL MongoDB menyimpan data benbentuk JSON ke dalam storage dengan bentuk BSON (Binary). jadi setiap operasi pada MongoDB, akan banyak menggunakan JSON Perhatian Penulisan perintah dalam repo ini menggunakan beberapa tanda yang ditampilkan hanya sebagai pendukung untuk memudahkan pembaca. tanda yang digunakan adalah > dan $. kedua tanda tersebut tidak perlu
di copy Silahkan lihat tahap2 di link ini ketika MongoDB terinstall, akan ada beberapa program mongo yang dapat dieksekusi. namun yang umum digunakan adalah dua yaitu mongo dan mongod mongo adalah database client dari MongoDB. program ini digunakan untuk melakukan operasi terhadap database, collection dll.
simpelnya, disini kita melakukan querynya mongod adalah program untuk menjalankan mongodb itu sendiri. program mongo tidak akan bisa dijalankan jika tidak ada service mongoDB yang berjalan. terdapat beberapa cara menjalankan yaitu :Belajar Mongo
Instalasi
Menjalankan
mongod
Sebagai Service
untuk menjalankan MongoDB sebagai service yang perlu dilakukan adalah cukup dengan perintah standar systemctl ataupun service
berikut perintahnya
$ sudo systemctl start mongod.service
Manual
untuk menjalankan MongoDB secara manual, anda dapat menggunakan perintah yang sudah disediakan MongoDB yaitu mongod
Buat folder untuk menyimpan file database. contoh mkdir ~/mongo-data/
Jalankan perintah mongod dan arahkan dbpath ke folder yang telah dibuat. ketik diterminal sudo mongod --dbpath ~/mongo-data
kita juga bisa mengatur port jika ingin tidak ingin menggunakan port standar. cukup berikan argumen --port dengan valuenya. contoh mongod --dbpath ~/mongo-data --port 12880
mongountuk menjalankan MongoDB client, cukup ketik perintah
pastikan mongod telah berjalan
Perintah & Query
Untuk menjalankan perintah & query, pastikan ada sudah berada dalam program client dari MongoDB / mongo. jika belum, jalankan perintah mongod, lalu jalankan program mongo.
Membuat Databaseuntuk membuat database, gunakan perintah use. perintah use berisikan 1 argumen yaitu nama database
contoh perintah membuat database book
Menampilkan Databasesuntuk melihat database, gunakan perintah
ketika pertama kali menjalankan perintah show dbs akan terdapat 3 database. 3 database tersebut adalah database standard di mongodb
Menghapus Databaseuntuk menghapus Database, gunakan perintah
pastikan anda telah memilih database sebelum menghapus database.
untuk mengecek database yang terpilih, cukup ketikan perintah db
Mengubah Databasesampai saat ini belum ada cara mengubah nama database secara official dari mongodbnya. untuk mengubah nama, diperlukan cara2 tricky
Membuat Collectionuntuk membuat collection gunakan perintah
> db.createCollection('namacollection')
atau bisa juga dengan langsung menuliskan query untuk menginput document. mongo akan otomatis membuat collection tersebut
> db.namacollection.insertOne({judul: "judul"})
Menampilkan Collectionuntuk melihat database, gunakan perintah
Mengubah Collectionuntuk mengubah nama collection, gunakan perintah
> db.namaCollection.renameCollection(namaBaruCollection)
Menghapus Collectionuntuk mengubah nama collection, gunakan perintah
> db.namaCollection.drop()
untuk membuat / menambahkan dokumen bisa menggunakan 3 cara yaitu
insertOne
insertOne digunakan untuk menambahkan satu dokumen kedalam collection.
insertOne menerima data dokumen berbentuk objek atau json
> db.namaCollection.insertOne({contohKey: "contohValue""})
perintah diatas akan mengembalikan respon kurang lebih seperti dibawah
{ "_id" : ObjectId("5d59dfa3f0650355d96637bc"), "contohKey" : "contohValue" }
valu dari _id adalah value yang digenerate otomatis oleh mongoDB. _id adalah pembeda dari masing2 dokumen, layaknya primary key dalam SQL
insertMany
insertMany digunakan untuk menambahkan dokumen dengan jumlah lebih dari 1
insertMany menerima data dokumen berupa list atau array dari beberapa/banyak dokumen
> db.namaCollection.insertMany([{contohKey: "contohValue"}, {contohKey2: "contohValue2"}])
perintah diatas akan menghasilkan respon kurang lebih seperti dibawah
{ "acknowledged" : true, "insertedIds" : [ ObjectId("5d59e39df0650355d96637c0"), ObjectId("5d59e39df0650355d96637c1") ] }
insert
insert adalah kombinasi dari insertOne dan insertMany, insert menerima data dokumen berupa object ataupun list/array
db.namaCollection.insertMany([{contohKey: "contohValue"}, {contohKey2: "contohValue2"}])
respon yang dihasilkan oleh perintah insert berbeda dengan insertOne dan insertMany. insert akan mengembalikan response berupa writeResult dan bulkWriteResult. respon dari insert kurang lebih seperti dibawah
BulkWriteResult({ "writeErrors" : [ ], "writeConcernErrors" : [ ], "nInserted" : 2, "nUpserted" : 0, "nMatched" : 0, "nModified" : 0, "nRemoved" : 0, "upserted" : [ ] })
Membaca Dokumenuntuk membaca dokumen, kita bisa menggunakan 2 cara yaitu
find
find adalah perintah standar untuk menampilkan dokumen. find akan mengembalikan response dalam bentuk list/array
Menampilkan Semua Data
> db.namaCollection.find() atau > db.namaCollection.find({})
Menampilkan Data dengan Query
> db.namaCollection.find({nama: "budi"})
perintah diatas digunakan untuk menampilkan semua dokumen yang memiliki attibut nama dengan value budi
findOne
find digunakan untuk menampilkan 1 dokumen. apabila terdapat lebih dari satu dokumen yang sama, maka findOne akan mengembalikan hasil pertama
> db.namaCollection.findOne() atau > db.namaCollection.findOne({nama: "budi"}) // dengan query
Mengubah Dokumenuntuk mengubah dokumen, kita bisa menggunakan 3 cara yaitu updateOne, updateMany dan update. semua perintah tersebut membutuhkan minimal 2 argument/parameter yaitu :
- query untuk menentukan yang akan diubah
- data baru untuk menggantikan data lama
updateOne
updateOne digunakan untuk mengupdate 1 dokumen.
> db.namaCollection.updateOne({query}, {$set: dataBaru}) contoh > db.namaCollection.updateOne({nama: "budi"}, {$set: {nama: "andi"}})
contoh perintah diatas jika eksekusi maka akan mengubah 1 data pertama yang memiliki nama budi, dan mengubah nama menjadi andi
updateMany
updateMany digunakan untuk mengupdate semua dokumen yang sesuai dengan query.
> db.namaCollection.updateMany({nama: "budi"}, {$set: {nama: "andi"}})
contoh perintah diatas jika eksekusi maka akan mengubah semua data yang memiliki nama budi, dan mengubah nama menjadi andi
update
update digunakan untuk mengupdate dokumen yang sesuai dengan query. perintah update dapat mengupdate satu maupun banyak dokumen. update juga dapat digunakan untuk melakukan operasi replace. untuk melakukan operasi update, diperlukan 3 parameter/argumen yaitu
- query untuk mengfilter dokumen mana yang perlu diubah
- databaru sebagai data untuk mengganti data lama
- options untuk menentukan operasi mana yang ingin dilakukan terhadap dokumen
> db.namaCollection.update() !! COMING SOON
Menghapus Dokumenuntuk menghapus dokumen, kita bisa menggunakan 2 cara yaitu deleteOne, deleteMany.
deleteOne deleteOne digunakan untuk menghapus 1 dokumen.
> db.namaCollection.deleteOne({query}) contoh > db.namaCollection.deleteOne({nama: "budi"})
perintah diatas akan menghapus 1 dokumen yang memiliki attribut nama dengan value budi.
deleteMany deleteMany digunakan untuk menghapus beberapa/banyak dokumen.
> db.namaCollection.deleteMany({query}) contoh > db.namaCollection.deleteMany({nama: "budi"})
perintah diatas akan menghapus semua dokumen yang memiliki attribut nama dengan value budi.
Tambahan
untuk menghapus berdasarkan _id dokumen, diperlukan sedikit tambahan yaitu seperti berikut
> db.namaCollection.deleteMany({ _id: ObjectId(_idDariDokumen)})
seperti pada contoh diatas, diperlukan bagi pengguna untuk menambahkan ObjectId pada _id dari dokumen
Kursor / CursorComing Soon
- / Embedded DocumentComing Soon
OperatorComing Soon
Skema / SchemaComing Soon