perkenalan mongodb
DESCRIPTION
Slide ini cocok untuk programmer yang baru belajar MongoDBTRANSCRIPT
![Page 1: Perkenalan MongoDB](https://reader034.vdocuments.site/reader034/viewer/2022051323/54b6ffae4a7959943a8b456f/html5/thumbnails/1.jpg)
![Page 2: Perkenalan MongoDB](https://reader034.vdocuments.site/reader034/viewer/2022051323/54b6ffae4a7959943a8b456f/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051323/54b6ffae4a7959943a8b456f/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051323/54b6ffae4a7959943a8b456f/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051323/54b6ffae4a7959943a8b456f/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051323/54b6ffae4a7959943a8b456f/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051323/54b6ffae4a7959943a8b456f/html5/thumbnails/7.jpg)
Document dan Collection
![Page 8: Perkenalan MongoDB](https://reader034.vdocuments.site/reader034/viewer/2022051323/54b6ffae4a7959943a8b456f/html5/thumbnails/8.jpg)
Query
![Page 9: Perkenalan MongoDB](https://reader034.vdocuments.site/reader034/viewer/2022051323/54b6ffae4a7959943a8b456f/html5/thumbnails/9.jpg)
Social Network SederhanaStudi Kasus
![Page 10: Perkenalan MongoDB](https://reader034.vdocuments.site/reader034/viewer/2022051323/54b6ffae4a7959943a8b456f/html5/thumbnails/10.jpg)
Collection yang Diperlukan
•UsersMenampung data pengguna dan profilnya
•PostsMenampung data posting pengguna
•CommentsMenampung data komentar (opsional)
![Page 11: Perkenalan MongoDB](https://reader034.vdocuments.site/reader034/viewer/2022051323/54b6ffae4a7959943a8b456f/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051323/54b6ffae4a7959943a8b456f/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051323/54b6ffae4a7959943a8b456f/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051323/54b6ffae4a7959943a8b456f/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051323/54b6ffae4a7959943a8b456f/html5/thumbnails/15.jpg)
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 "}
]})
![Page 16: Perkenalan MongoDB](https://reader034.vdocuments.site/reader034/viewer/2022051323/54b6ffae4a7959943a8b456f/html5/thumbnails/16.jpg)
Lebih Jauh
http://docs.mongodb.org/master/tutorial/getting-started/
Sekian