Top Banner
16

Perkenalan MongoDB

Jan 15, 2015

Download

Technology

Isman Subarkah

Slide ini cocok untuk programmer yang baru belajar MongoDB
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Perkenalan MongoDB
Page 2: Perkenalan MongoDB

MongoDB

•Database non-relasional• Tidak membutuhkan skema data yang fixed•Query tidak menggunakan sintaks SQL•Query menggunakan API dengan sintaks JavaScript•Data direpresentasikan dengan JSON

Page 3: Perkenalan MongoDB

Terminologi

SQL MongoDB

Database Database

Table Collection

Row Document

Column Field

Index Index

Primary key Primary key

Table join Embedding dan linking

Page 4: Perkenalan MongoDB

Query SQL vs MongoDB

SQL MongoDB

CREATE TABLE users ( id INT, user_id Varchar(30), age INT, status char(1), PRIMARY KEY (id) )

db.createCollection("users")

(Tidak perlu definisi field!)

DROP TABLE users db.users.drop()

Page 5: Perkenalan MongoDB

Query SQL vs MongoDB

SQL MongoDB

INSERT INTO users (user_id, age, status) VALUES ("bcd001", 45, "A")

db.users.insert({ user_id: "bcd001", age: 45, status: "A" })

SELECT * FROM users WHERE status = "A"

db.users.find( {status: "A"})

Page 6: Perkenalan MongoDB

Query SQL vs MongoDB

SQL MongoDB

UPDATE users SET status = "C" WHERE age > 25

db.users.update( {age: {$gt: 25}}, {$set: {status: "C"}}, {upsert: false}, {multi: true})

DELETE FROM users WHERE status = "D"

db.users.remove( {status: "D"})

Page 7: Perkenalan MongoDB

Document dan Collection

Page 8: Perkenalan MongoDB

Query

Page 9: Perkenalan MongoDB

Social Network SederhanaStudi Kasus

Page 10: Perkenalan MongoDB

Collection yang Diperlukan

•UsersMenampung data pengguna dan profilnya

•PostsMenampung data posting pengguna

•CommentsMenampung data komentar (opsional)

Page 11: Perkenalan MongoDB

Users

• Field yang wajib:• ID• Name• Email• Password• Profile picture• Friends []

• Field-field lain (pendidikan, pekerjaan, dsb) dapat ditentukan saat insert data baru

Page 12: Perkenalan MongoDB

Field Dinamisdb.users.insert({

id: 1,

name: "Mongo Mampir",

email: "[email protected]",

password: "a23a370a87ec0780a07d28dfe",

prof_pic: "user21881247.png",

friends_id: [3, 4, 9, 5, 14, 17],

educations: [

{year: [2005, 2008],

name: "SMAN 1 Harvard"},

{year: [2008, 2012],

name: "Bogor Agricultural University",

major: "Teknologi Informasi"},

]

})

Page 13: Perkenalan MongoDB

Posts

• Field-field yang wajib:• ID• User ID• Type (status, photo, video, link, share, event)• Date

• Field-field lainnya dinamis tergantung tipe post-nya, dan ditentukan saat insert•Misalnya:• Tipe status memiliki field "text"• Tipe photo memiliki field "album", "images", "text"• Tipe link memiliki field "url", "text"

Page 14: Perkenalan MongoDB

Comments?

Bisa diimplementasikan dengan dua cara:

1. LinkingSeperti database relasional biasa, ada collection comments yang memiliki "foreign key" ke posts

2. EmbeddingKomentar langsung disisipkan di collection posts

Page 15: Perkenalan MongoDB

Embedding

db.posts.insert({id: 1,user_id: 1,type: "status",date: "2014-01-12 22:01:32",text: "Aduuh laper nich, enaknya ngapain

yach?",comments: [

{user_id: 3, text: "Alay banget..."},{user_id: 4, text: "Enaknya bikin

status"},{user_id: 1, text: "Makan yuk :v "}

]})