Building Your First MongoDB App
-
Upload
henrik-ingo -
Category
Technology
-
view
494 -
download
1
description
Transcript of Building Your First MongoDB App
![Page 1: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/1.jpg)
Job Title, MongoDB
Speaker Name
#ConferenceHashTag
Building your first app;an introduction to MongoDB
![Page 2: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/2.jpg)
What is MongoDB?
![Page 3: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/3.jpg)
MongoDB is a ___________ database
• Document
• Open source
• High performance
• Horizontally scalable
• Full featured
![Page 4: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/4.jpg)
Document Database
• Not for .PDF & .DOC files
• A document is essentially an associative array– JSON object
– PHP Array
– Python Dict
– Ruby Hash
– etc
![Page 5: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/5.jpg)
var user = {
username: ’erlichson',
first_name: ’Andrew',
last_name: ’Erlichson',
}
Start with an object (or array, hash, dict, etc)
![Page 6: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/6.jpg)
![Page 7: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/7.jpg)
Database Landscape
![Page 8: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/8.jpg)
Full Featured
• Ad Hoc queries
• Real time aggregation
• Rich query capabilities
• Strongly consistent
• Geospatial features
• Support for most programming languages
• Flexible schema
![Page 9: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/9.jpg)
mongodb.org/downloads
![Page 10: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/10.jpg)
$ tar –z xvf mongodb-osx-x86_64-2.4.x.tgz
$ cd mongodb-osx-i386-2.4.4/bin
$ mkdir –p /data/db
$ ./mongod
Running MongoDB
![Page 11: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/11.jpg)
MacBook-Air-:~ $ mongo
MongoDB shell version: 2.4.4
connecting to: test
> db.test.insert({text: 'Welcome to MongoDB'})
> db.test.find().pretty()
{
"_id" : ObjectId("51c34130fbd5d7261b4cdb55"),
"text" : "Welcome to MongoDB"
}
Mongo Shell
![Page 12: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/12.jpg)
Document Database
![Page 13: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/13.jpg)
Terminology
RDBMS MongoDB
Table, View ➜ Collection
Row ➜ Document
Index ➜ Index
Join ➜ Embedded Document
Foreign Key ➜ Reference
Partition ➜ Shard
![Page 14: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/14.jpg)
Let’s Build a Blog
![Page 15: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/15.jpg)
First step in any application is
Determine your entities
![Page 16: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/16.jpg)
Entities in our Blogging System
• Users (post authors)
• Article
• Comments
• Categories, Tags
![Page 17: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/17.jpg)
In a relational base app
We would start by doing schema design
![Page 18: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/18.jpg)
Typical (relational) ERD
![Page 19: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/19.jpg)
In a MongoDB based appWe start building our appand let the schema evolve
![Page 20: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/20.jpg)
MongoDB ERD
![Page 21: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/21.jpg)
Working With MongoDB
![Page 22: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/22.jpg)
var user = {
username: ’erlichson',
first_name: ’Andrew',
last_name: ’Erlichson',
}
Start with an object (or array, hash, dict, etc)
![Page 23: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/23.jpg)
>db
test
> use blog
switching to db blog
> db.users.insert( user )
Store in DB "blog", collection "users"
![Page 24: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/24.jpg)
>db
test
> use blog
switching to db blog
> db.users.insert( user )
Store in DB "blog", collection "users"
No collection creation necessary
![Page 25: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/25.jpg)
> db.users.find()
{
"_id" : ObjectId("50804d0bd94ccab2da652599"),
"username" : ”erlichson",
"first_name" : ”Andrew",
"last_name" : ”Erlichson"
}
> db.users.find( { "_id" : ObjectId(..) } )
> db.users.find( { "username" : "erlichson" } )
Find a Record
![Page 26: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/26.jpg)
> db.article.insert({
title: ‘Hello World’,
body: ‘This is my first blog post’,
date: new Date(‘2013-06-20’),
username: ‘erlichson’,
tags: [‘adventure’, ‘mongodb’],
comments: [ ]
})
Creating a Blog Post
![Page 27: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/27.jpg)
> db.article.find().pretty()
{
"_id" : ObjectId("51c3bafafbd5d7261b4cdb5a"),
"title" : "Hello World",
"body" : "This is my first blog post",
"date" : ISODate("2013-06-20T00:00:00Z"),
"username" : "erlichson",
"tags" : [
"adventure",
"mongodb"
],
"comments" : [ ]
}
Finding the Post
![Page 28: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/28.jpg)
> db.article.find({tags:'adventure'}).pretty()
{
"_id" : ObjectId("51c3bcddfbd5d7261b4cdb5b"),
"title" : "Hello World",
"body" : "This is my first blog post",
"date" : ISODate("2013-06-20T00:00:00Z"),
"username" : "erlichson",
"tags" : [
"adventure",
"mongodb"
],
"comments" : [ ]
}
Querying An Array
![Page 29: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/29.jpg)
> db.article.update({_id:
new ObjectId("51c3bcddfbd5d7261b4cdb5b")},
{$push:{comments:
{name: 'Steve Blank', comment: 'Awesome Post'}}})
>
Using Update to Add a Comment
![Page 30: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/30.jpg)
> db.article.findOne({_id: new ObjectId("51c3bcddfbd5d7261b4cdb5b")})
{
"_id" : ObjectId("51c3bcddfbd5d7261b4cdb5b"),
"body" : "This is my first blog post",
"comments" : [
{
"name" : "Steve Blank",
"comment" : "Awesome Post"
}
],
"date" : ISODate("2013-06-20T00:00:00Z"),
"tags" : [
"adventure",
"mongodb"
],
"title" : "Hello World",
"username" : "erlichson"
}
Post with Comment Attached
![Page 31: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/31.jpg)
MongoDB Drivers
![Page 32: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/32.jpg)
![Page 33: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/33.jpg)
![Page 34: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/34.jpg)
docs.mongodb.org
![Page 35: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/35.jpg)
Online Training at MongoDB University
![Page 36: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/36.jpg)
Questions?
![Page 37: Building Your First MongoDB App](https://reader034.fdocuments.in/reader034/viewer/2022042700/554a0f56b4c9058c5d8b4924/html5/thumbnails/37.jpg)
#ConferenceHashtag
Thank You