The Hows and Whys of MongoDB
Upcoming SlideShare
Loading in...5
×
 

The Hows and Whys of MongoDB

on

  • 361 views

Want to get started with MongoDB? Here is a quick intro the major features of the most popular NoSQL database.

Want to get started with MongoDB? Here is a quick intro the major features of the most popular NoSQL database.

Statistics

Views

Total Views
361
Views on SlideShare
361
Embed Views
0

Actions

Likes
0
Downloads
8
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

The Hows and Whys of MongoDB The Hows and Whys of MongoDB Presentation Transcript

  • The Hows and Whys of MongoDB 27 May 2014
  • Everything is at: http://bitly.com/bundles/rockncoder/2
  • Who am I? Hi, I am Troy. I have fun as a full stack programmer. I develop using ASP.NET MVC or Node.js on the backend and the web or mobile up front. ! I can be reached at: rockncoder@gmail.com
  • Free mobile tutorials with source code @ therockncoder.blogspot.com
  • Want more? Follow me, new tutorials are announced on Twitter first: @therockncoder
  • Source code for my tutorials hosted on GitHub @ https://github.com/Rockncoder
  • Check out my videos: www.youtube.com/rockncoder
  • MongoDB 9 to 5 • Two day intensive training • July 19th & 26th • 9 AM - 5 PM • ITT Technical Institute,Torrance, CA
  • Agenda • Introduction to MongoDB • The MongoDB Shell • Using MongoDB • Advanced MongoDB • MongoDB Tools • To MongoDB or not to MongoDB • Summary • Questions
  • Introduction to MongoDB
  • What is MongoDB? • Cross-platform document database • Developed by MongoDB Inc in 2007 • Production ready since March 2010 • Free and open-source • The most popular NoSQL database
  • Top DB-Engines • Oracle • MySQL • MS SQL Server • PostgreSQL • MongoDB ! • DB2 • MS Access • SQLite • Cassandra • Sybase ASE
  • Who Uses It? • Craigslist • eBay • Foursquare • SourceForge • Viacom • Expedia • Parse • LinkedIn • Medtronic • eHarmony • CERN • and more
  • Why? • Document Database • High Performance • High Availability • Easy Scalability
  • What is a Document? • An ordered set of keys and values • like JavaScript objects • no duplicate keys allowed • type and case sensitive • field order is not important or guaranteed
  • What’s Wrong with SQL? • SQL was created by Edgar F. Codd in 1969 • OracleV2 introduced in 1979 • MS SQL Server introduced in 1989 • Today most languages are object-oriented • SQL is column and row oriented
  • A Contact Manager • first name • last name • home address • work address • mobile phone • home phone
  • In SQL • Person table • Address table • Phone number table • Joins necessary to retrieve
  • In MongoDB • One document holds it all • Including the arrays • No joins necessary
  • SQL MongoDB row document table collection database database joins none transactions none
  • Installation • The current version is 2.6.1 • Downloads available for Windows, Linux, Mac OSX, and Solaris • 64-bit for all systems, 32-bit for Windows & Linux • 32-bit is not recommends except for learning
  • Windows • Download MongoDB • Unzip the file • Move it, if necessary • Set up the MongoDB environment • Start MongoDB • Connect to MongoDB
  • Mac OS X • The best way is to use Homebrew • brew update • brew install mongo
  • The MongoDB Shell
  • The MongoDB Shell • Allows interactions with a MongoDB instance • A full-featured JavaScript interpreter • Allows multiple line input
  • Shell Helpers • use foo - db.getSisterDB(“foo”) • show dbs - db.getMongo().getDBs() • show collections - db.getCollectionNames()
  • CRUD in the Shell • Create = insert • Read = find/findOne • Update = update • Delete = remove
  • BSON not JSON • MongoDB uses its own variant of JSON • Called Binary JSON or BSON • Efficiency • Traversability • Performance
  • Using MongoDB
  • MongoDB in Node.js
  • MongoDB in Android
  • MongoDB in C#
  • Misunderstandings • It is schema-less • You don’t need to design db • You should mix types
  • Advanced MongoDB
  • Performance • Indexing • Query Optimization • Profiler
  • Indexing • Indexes should support queries • Use indexes to sort queries • Indexes should fit into RAM • Queries should ensure selectivity
  • Query Optimization • Improves read operations by reducing data that the query needs to process
  • Profiler • Collects data about MongoDB database commands • Enabled per-database or per-instance basis • Profile level is configurable (0, 1, or 2)
  • Stats • db.stats() • Statistics that reflect the use of a single DB • Identifies: • the current database • the number of indexes • the file size
  • Replication • Keeps identical copies of data on multiple servers • Set up by creating a replica set • A replica set is a group of servers with one primary • If primary crash, secondaries elect a new one
  • Backup • mongodump - command line tool • You must have backup and read privileges • No arguments connects to the local DB • —db, limits the database • —collection, limits the collections • —oplog, makes snapshots possible
  • Restore • mongorestore --port <port number> <path to the backup> • Can restore to a running instance or to the files • —oplogReplay, • —filter, allows restore only if filter is true
  • Sharding • Process of splitting data up across machines • Manual sharding can be with most database • MongoDB has autosharding • Nonetheless it is difficult to configure
  • MongoDB Tools
  • Tools • MongoDB Shell (built-in) • MongoDB Web Site (built-in) • Robomongo (Mac, PC, Linux) • http://mongodb-tools.com/
  • To MongoDB or not to MongoDB
  • Not to MongoDB • Transactions are needed • You are happy with what you have • You have have
  • To MongoDB • You do a lot of non-transactional writes • You need to grow wide • You work with location based data • You need high availability
  • MongoDB as a Service • MongoHQ • MongoLab • MongoDirector • ObjectRocket, (Rackspace)
  • Summary • MongoDB is an open-source document database • It features JSON-style documents with dynamic schemas • In order to gain performance, it sacrifices reliability
  • Everything is at: http://bitly.com/bundles/rockncoder/2