Perkenalan MongoDB

Post on 15-Jan-2015

176 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

Slide ini cocok untuk programmer yang baru belajar MongoDB

Transcript

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

Terminologi

SQL MongoDB

Database Database

Table Collection

Row Document

Column Field

Index Index

Primary key Primary key

Table join Embedding dan linking

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()

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

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

Document dan Collection

Query

Social Network SederhanaStudi Kasus

Collection yang Diperlukan

•UsersMenampung data pengguna dan profilnya

•PostsMenampung data posting pengguna

•CommentsMenampung data komentar (opsional)

Users

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

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

Field Dinamisdb.users.insert({

id: 1,

name: "Mongo Mampir",

email: "mongo@gmail.com",

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

]

})

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"

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

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

]})

top related