perkenalan mongodb
DESCRIPTION
Slide ini cocok untuk programmer yang baru belajar MongoDBTRANSCRIPT
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: "[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"},
]
})
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 "}
]})
Lebih Jauh
http://docs.mongodb.org/master/tutorial/getting-started/
Sekian