Building Your First MongoDB App
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Building Your First MongoDB App

  • 472 views
Uploaded on

Simple introduction to MongoDB via the example of building a blog application.

Simple introduction to MongoDB via the example of building a blog application.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
472
On Slideshare
441
From Embeds
31
Number of Embeds
2

Actions

Shares
Downloads
10
Comments
0
Likes
1

Embeds 31

https://twitter.com 17
http://www.slideee.com 14

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Job Title, MongoDB Speaker Name #ConferenceHashTag Building your first app; an introduction to MongoDB
  • 2. What is MongoDB?
  • 3. MongoDB is a ___________ database • Document • Open source • High performance • Horizontally scalable • Full featured
  • 4. Document Database • Not for .PDF & .DOC files • A document is essentially an associative array – JSON object – PHPArray – Python Dict – RubyHash – etc
  • 5. var user = { username: ’erlichson', first_name: ’Andrew', last_name: ’Erlichson', } Start with an object (or array, hash, dict, etc)
  • 6. Database Landscape
  • 7. Full Featured • Ad Hoc queries • Real time aggregation • Rich query capabilities • Strongly consistent • Geospatial features • Support for most programming languages • Flexible schema
  • 8. mongodb.org/downloads
  • 9. $ 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
  • 10. 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
  • 11. Document Database
  • 12. Terminology RDBMS MongoDB Table, View ➜ Collection Row ➜ Document Index ➜ Index Join ➜ Embedded Document Foreign Key ➜ Reference Partition ➜ Shard
  • 13. Let’s Build a Blog
  • 14. First step in any application is Determine your entities
  • 15. Entities in our Blogging System • Users (post authors) • Article • Comments • Categories, Tags
  • 16. In a relational base app We would start by doing schema design
  • 17. Typical (relational) ERD
  • 18. In a MongoDB based app We start building our app and let the schema evolve
  • 19. MongoDB ERD
  • 20. Working With MongoDB
  • 21. var user = { username: ’erlichson', first_name: ’Andrew', last_name: ’Erlichson', } Start with an object (or array, hash, dict, etc)
  • 22. >db test > use blog switching to db blog > db.users.insert( user ) Store in DB "blog", collection "users"
  • 23. >db test > use blog switching to db blog > db.users.insert( user ) Store in DB "blog", collection "users" No collection creation necessary
  • 24. > 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
  • 25. > 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
  • 26. > 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
  • 27. > 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
  • 28. > db.article.update({_id: new ObjectId("51c3bcddfbd5d7261b4cdb5b")}, {$push:{comments: {name: 'Steve Blank', comment: 'Awesome Post'}}}) > Using Update to Add a Comment
  • 29. > 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
  • 30. MongoDB Drivers
  • 31. docs.mongodb.org
  • 32. Online Training at MongoDB University
  • 33. Questions?
  • 34. #ConferenceHashtag Thank You