perkenalan mongodb

16

Upload: isman-subarkah

Post on 15-Jan-2015

182 views

Category:

Technology


3 download

DESCRIPTION

Slide ini cocok untuk programmer yang baru belajar MongoDB

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 "}

]})