Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MongoDB - a brief introduction.

Avatar for Deepak Kumar Deepak Kumar
November 10, 2012

MongoDB - a brief introduction.

A brief introduction to mongodb.

Avatar for Deepak Kumar

Deepak Kumar

November 10, 2012
Tweet

More Decks by Deepak Kumar

Other Decks in Programming

Transcript

  1. MongoDB • Document oriented a. Objects are mapped as documents

    b. Documents can be embedded c. Dynamically typed • No Schema • High availability a. Replication through sharding. b. Automatic failover • Easy scaling a. Auto shrading ( auto partitioning data across servers) • Speed
  2. Programming Language Support Supported by all the popular programming languages

    (C++, Java, Python, Ruby, Go, Haskel etc...) and web frameworks ( Rails, Django etc).
  3. Data Types Supported • String • Number • Boolean •

    Date • Null • Array • Object ID • Binary data • Regular Expression
  4. Why should we use Mongodb • Easy to scale •

    Coding velocity (agility) • No impedance mismatch • Allows dynamic schema ( No Schema, agility) • Easier to store and manipulate polymorphic data • Variety of Indexing • A MapReduce tool.
  5. Impedance Mismatch In object relational mapping an object in programming

    language is mapped to a record in database. So if the data is simple and database support it then there is no mismatch. But if the data is polymorphic and have unsupported types then the mapping will be difficult which causes a impedance mismatch. In mongodb data is of JSON format so it can map well to the object.
  6. Where should we avoid MongoDB • Problems with SQL support.

    • Systems with heavy emphasis on complex transactions such as banking. • Data Warehousing whose underlying database are schema based.
  7. Indexing • Indexing can be done on a field •

    Indexing can be done on an embedded object. • Sparse indexing - Indexing based existence of field. • TTL index • Geospatial Index ( Location based access) • Geohaystack index (Bucket based small regions)
  8. MongoDB/ Components • Mongod => Database Process • Mongoes =>

    Shrading Controller • Mongo => Database Shell ( javascript shell)
  9. MongoDB/Utilities • mongodump => Dump tool for backup and snapshot

    • mongorestore => Restore a dump • mongoexport => Export a single collection to JSON or CSV • mongoimport => Import from JSON or CSV • mongofiles => Utility for putting and getting files from MongoDB GridFS • mongostat => Performance statistics tool
  10. Single Server Configuration • Install mongodb • create a database

    directory eg: mkdir -p /data/db • create a configuration file (optional) eg: /etc/mongodb.conf • start the mongodb server sudo mongod -f /etc/mongodb.conf OR use init script. • connect to the database using javascript console mongo You will get connected to test database.
  11. Third party Software Used With MogoDB Boost => Portable open

    source C++ libraries. V8 => Javascript runtime. PCRE => Perl compatible regular expression. MD5 => Message Digest Algorithm Snappy => fast compression and decompression tool
  12. Edda - Admin Tool • Edda provides a graphical visualization

    of mongodb servers . • Edda provides an easy way to check the status in multiserver configuration.
  13. Companies Using MongoDB • Foursquare • MTV networks • Disney

    • Customlnk • Sourceforge • Wowmakers • and many others ....