Anda di halaman 1dari 13

MODUL 14 MongoDB

1.1. Deskripsi Singkat


MongoDB adalah cross-platform, database berorientasi dokumen yang
menyediakan, kinerja tinggi, ketersediaan tinggi, dan skalabilitas mudah. MongoDB
bekerja pada konsep koleksi dan dokumen.

1.2. Tujuan Praktikum


MongoDB adalah database dokumen sumber terbuka dan database NoSQL
terkemuka. MongoDB ditulis dalam C++. Praktikum ini akan memberi Anda
pemahaman yang baik tentang konsep MongoDB yang diperlukan untuk membuat dan
menerapkan database yang sangat skalabel dan berorientasi pada kinerja.

Setelah praktikum pada Modul 14 ini, diharapkan mahasiswa dapat


membuatbasis data dengan

1.3. Material Praktikum


Kegiatan pada Modul 14 ini menggunakan materi ajar dari modul ini sendiri, buku
Thomas Connoly, ”Database Systems: A Practical Approach to Design, Implementation
and Management”, 4th Edition, Addison Wesley, 2005, dan materi latihan yang
tercantum pada bagian berikutnya.

1.4. Kegiatan Praktikum


1.4.1. Insert Document
Untuk memasukkan data ke dalam koleksi MongoDB, kita dapat menggunakan
perintah. insert() atau save() MongoDB. Untuk perintah save() akan dibahas pada
sub bahasan update document. Sintaks dasar perintah insert() adalah sebagai berikut:

>db.nama_koleksi.insert(dokumen)
Berikut ini adalah perintah untuk memasukkan data client:

>db.client.insert({clientno:"CR76",fname:"John",lname:"Ke
y"});
WriteResult({ "nInserted" : 1 })
Untuk melihat data yang sudah kita masukkan, kita dapat menggunakan perintah
find():

> db.client.find();

1
{ "_id" : ObjectId("619efa0273d615ed820b7bdc"),
"clientno" : "CR76", "fname" : "John", "lname" : "Key" }
>
Untuk melakukan insert multiple documment kita dapat membuat perintah insert
dengan menggunakan array data. Di MongoDB kita juga dapat melakukan insert
dengan field yang berbeda antar dokumen. Perintah di bawah

> db.client.insert(
...[
...{clientno: "CR56", fname: "Aline", lname: "Steward"},
...{clientno: "CR74", fname: "Mike", lname: "Ritchie",
telno:"01475-943-1728"}
...]
...);

1.4.2. Query Document


Untuk melakukan pencarian data dari koleksi MongoDB, kita dapat menggunakan
metode find() di MongoDB. Sintaks dasar untuk melakukan pencarian data adalah:

>db.nama_koleksi.find()

2
Untuk menampilkan hasil format yang lebih mudah untuk dibaca, kita dapat
menggunakan metode pretty() .

> db.client.find().pretty();

Untuk Melakukan pencarian dokumen berdasarkan beberapa kondisi, kita dapat


menggunakan operasi berikut.

Operation Syntax

sama dengan {<key>:{$eg;<value>}}


Kurang dari (<) {<key>:{$lt:<value>}}
Kurang dari sama dengan (<=) {<key>:{$lte:<value>}}
Lebih besar (>) {<key>:{$gt:<value>}}
Lebih besar sama dengan (>=) {<key>:{$gte:<value>}}

3
Dan ({ $and: [ {<key1>:<value1>}
Atau ({ $or: [ {<key1>:<value1>}
Buat koleksi propertyforrent:

db.propertyforrent.insert(
[
{propertyno:"PA14",street:"16
Holhead",city:"Aberdeen",postcode:"AB7
5SU",type:"House",rooms:6,rent:650,ownerno:"CO46",staffno
:"SA9",branchno:"B007"},
{propertyno:"PL94",street:"6 Argyll
St",city:"London",postcode:"NW2",type:"Flat",rooms:4,rent
:400,ownerno:"CO87",staffno:"SL41",branchno:"B005" },
{propertyno:"PG4",street:"6 Lawrence
St",city:"Glasgow",postcode:"G11
9QX",type:"Flat",rooms:3,rent:350,ownerno:"CO40",
branchno:"B003"},
{propertyno:"PG36",street:"2 Manor
Rd",city:"Glasgow",postcode:"G32
4QX",type:"Flat",rooms:3,rent:375,ownerno:"CO93",staffno:
"SG37",branchno:"B003" },
{propertyno:"PG21",street:"18 Dale
Rd",city:"Glasgow",postcode:"G12",type:"House",rooms:5,re
nt:600,ownerno:"CO87",staffno:"SG37",branchno:"B003"},
{propertyno:"PG16",street:"5 Novar
Dr",city:"Glasgow",postcode:"G12
9AX",type:"Flat",rooms:4,rent:450,ownerno:"CO93",staffno:
"SG14",branchno:"B003" }
]
)

1) Kurang dari (<)


Tampilkan properti yang memiliki biaya sewa di bawah 400:

db.propertyforrent.find({"rent":{$lt:400}}).pretty()

4
2) AND
Untuk mengkueri dokumen berdasarkan kondisi AND, kita perlu menggunakan
$and kata kunci. Berikut ini adalah sintaks dasar AND:

>db.koleksi.find({ $and: [ {<key1>:<value1>}, {


<key2>:<value2>} ] })
Tampilkan properti dengan tipe rumah yang ada di kota Glasgow:

db.propertyforrent.find({$and:[{"city":"Glasgow"},{"type"
: "Flat"}]}).pretty()

5
3) OR

Tampilkan jalan, kota, tipe dan harga properti yang ada di kota London dan
Aberdeen:
db.propertyforrent.find(
{$or:[{"city":"London"},{"city": "Aberdeen"}]},
{"street":1, "city":1,"type":1,"rent":1, _id:0}
).pretty()

4) Projection
Proyeksi berarti memilih hanya data yang diperlukan daripada memilih seluruh
data dokumen. Jika dokumen memiliki 5 bidang dan Anda hanya perlu menampilkan 3
bidang, maka pilih hanya 3 bidang darinya. Berikut adalah contoh proyeksi koleksi
client, di mana kita hanya ingin menampilkan field fname dan lname pada koleksi
client:

> db.client.find({},{"fname":1,"lname":1,
_id:0}).pretty();
{ "fname" : "John", "lname" : "Key" }
{ "fname" : "Aline", "lname" : "Steward" }
{ "fname" : "Mike", "lname" : "Ritchie" }

6
Field _id akan selalu ditampilkan saat menjalankan metode find(), jika kita
tidak menginginkan field ini, maka kita perlu menetapkannya sebagai 0.

5) Join
Kita akan melakukan perintah join untuk menampilkan data branch dan juga data
staff. Misal kita memilik data staff yang dimasukkan dengan perintah berikut:

db.staff.insert({staffno:"SL21",fname:"John",lname:"White
", position:"Manager", brancho:"B005"});
db.staff.insert({staffno:"SL41",fname:"Julie",lname:"Lee"
, position:"Assitant", brancho:"B005"});

Misal kita memilih data branch yang kita masukkan dengan perintah berikut:
db.branch.insert({branchNo:"B005",street:"22 Deer Rd",
city:"London", postcode:"SW1 4EH"});
db.branch.insert({branchNo:"B007",street:"16 Argyll St",
city:"Aberdeen", postcode:"AB2 3SU"});

7
Perintah untuk melakukan join pada MongoDB sebagai berikut:

db.branch.aggregate([
{ $lookup:
{
from: "staff",
localField: "branchno",
foreignField: "branchno",
as: "staff"
}
}
]).pretty();

8
1.4.3. Update Document
Pada MongoDB untuk memperbarui dokumen pada koleksi kita dapat
menggunakan metode update() dan save(). Metode update() memperbarui nilai
dalam dokumen yang ada sementara metode save() menggantikan dokumen yang ada
dengan dokumen yang diteruskan dalam metode save()

1) Metode Update()
Metode update() digunakan untuk memperbarui dokumen yang ada dalam
koleksi.

db.client.find({}, {_id:0}).pretty();

9
Berikut adalah contoh perintah untuk melakukan update data client dengan kode
CR76 dengan menambahkan nomer telepon 0171-774-5632:

db.client.update({'clientno':'CR76'},{$set:{'telno':'0171
-774-5632'}});

2) Metode save()
Metode save() digunakan untuk melakukan mengganti dokumen yang ada di
koleksi.

>db.nama_koleksi.save({_id:ObjectId(),data_baru})

10
Gantikan data client Aline Steward dengan _id

db.client.save(
{
"_id" : ObjectId("619f187d73d615ed820b7bec",
clientno: "CR62",
fname:"Mary",
lname:"Tregear",
telpno:"01224-196720"
}
);

11
1.4.4. Delete Document
Untuk menghapus semua data yang ada pada suatu koleksi, kita dapat
menggunakan perintah db.client.remove({});

> db.client.remove({});
WriteResult({ "nRemoved" : 3 })

12
1.5. Penugasan
Kerjakan sesuai dengan yang dijelaskan pada bagian Kegiatan Praktikum. Hasil
pekerjaan praktikum dilaporkan dalam bentuk file lembar kerja dengan format nama
<<nim>>_modul14, contoh: 192191234_modul14.

13

Anda mungkin juga menyukai