Mongodb (1)


Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Mongodb (1)

  1. 1. An IntroductionDeepak Kumar | @_deepak0
  2. 2. An IntroductionDeepak Kumar | @_deepak0
  3. 3. 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
  4. 4. Programming Language SupportSupported by all the popular programminglanguages (C++, Java, Python, Ruby, Go, Haskeletc...) and web frameworks ( Rails, Django etc).
  5. 5. Interesting FactThere are MongoDB systems that exceed one million operations per second.
  6. 6. MongoDB document modelKey Key Value Field Document Collection Database
  7. 7. Data Types Supported● String● Number● Boolean● Date● Null● Array● Object ID● Binary data● Regular Expression
  8. 8. 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.
  9. 9. Impedance MismatchIn object relational mapping an object inprogramming language is mapped to a record indatabase. So if the data is simple and databasesupport it then there is no mismatch.But if the data is polymorphic and have unsupportedtypes then the mapping will be difficult whichcauses a impedance mismatch.In mongodb data is of JSON format so it can mapwell to the object.
  10. 10. 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.
  11. 11. 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)
  12. 12. MongoDB/ Components● Mongod => Database Process● Mongoes => Shrading Controller● Mongo => Database Shell ( javascript shell)
  13. 13. 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
  14. 14. 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.
  15. 15. MongoDB Multiserver Configuration
  16. 16. Third party Software Used With MogoDBBoost => Portable open source C++ libraries.V8 => Javascript runtime.PCRE => Perl compatible regular expression.MD5 => Message Digest AlgorithmSnappy => fast compression and decompression tool
  17. 17. Edda - Admin Tool● Edda provides a graphical visualization of mongodb servers .● Edda provides an easy way to check the status in multiserver configuration.
  18. 18. Companies Using MongoDB● Foursquare● MTV networks● Disney● Customlnk● Sourceforge● Wowmakers● and many others ....
  19. 19. Thanks
  20. 20. Questions ?