Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Updated Introduction to MongoDB

11,104 views

Published on

My Introduction to MongoDB presentation given on March 10, 2011 at the Central Texas .NET User Group. I incorporated a lot of what I leaned from the MongoAustin conference.

The target audience is technical people (developers) who have experience with relational databases, but have never looked at MongoDb before. It covers all the basics but also several advanced topics like sharding and replication. I didn't modify my slides much from the last presentation, but I did cover a lot of material not on the slides.

http://www.chrisedwards.dreamhosters.com/blog/2011/03/25/intro-to-mongodb-slides-and-audio-from-ctxdnug-march-2011/

Published in: Technology
  • DOWNLOAD FULL BOOKS INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... 1.DOWNLOAD FULL PDF EBOOK here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL EPUB Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL doc Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL PDF EBOOK here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL EPUB Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL doc Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • .DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... .DOWNLOAD PDF EBOOK here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... .DOWNLOAD EPUB Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... .DOWNLOAD doc Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... .DOWNLOAD PDF EBOOK here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... .DOWNLOAD EPUB Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... .DOWNLOAD doc Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • .DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... .DOWNLOAD PDF EBOOK here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... .DOWNLOAD EPUB Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... .DOWNLOAD doc Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... .DOWNLOAD PDF EBOOK here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... .DOWNLOAD EPUB Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... .DOWNLOAD doc Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Njce! Thanks for sharing.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • My life is back!!! After 1 years of Broken marriage, my husband left me with two kids . I felt like my life was about to end i almost committed suicide, i was emotionally down for a very long time. Thanks to a spell caster called Dr Mohammed, which i met online. On one faithful day, as I was browsing through the internet,I came across allot of testimonies about this particular spell caster. Some people testified that he brought their Ex lover back, some testified that he restores womb,cure cancer,and other sickness, some testified that he can cast a spell to stop divorce and so on. i also come across one particular testimony,it was about a woman called Sonia,she testified about how he brought back her Ex lover in less than 2 days, and at the end of her testimony she dropped Dr Mohammed's e-mail address. After reading all these,I decided to give it a try. I contacted him via email and explained my problem to him. In just 48hours, my husband came back to me. We solved our issues, and we are even happier than before Dr Mohammed, is really a gifted man and i will not stop publishing him because he is a wonderful man... If you have a problem and you are looking for a real and genuine spell caster to solve all your problems for you. Try High monicaspiritualtemple@gmail.com anytime, he might be the answer to your problems. Here's his contact: monicaspiritualtemple@gmail.com or call him +2348134493948
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Updated Introduction to MongoDB

  1. 1. Introduction to MongoDB A No-SQL Persistence AlternativeC E N T R A L - T E X A S - . N E T - U S E R - G R O U P Chris Edwards h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o m
  2. 2. About Me Chris Edwards Senior Developer at BancVue Ltd. Email: ChrisEdwards357@gmail.com Blog: http://chrisedwards.dreamhosters.com Twitter: @cedwards Github: http://github.com/chrisedwards (Sample code for this talk is posted) h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  3. 3. MongoDB Session Roadmap • What is the NoSQL Movement? • What is MongoDB? • Installing • Using the Mongo Shell • Accessing MongoDB via C# - Basic Driver (mongodb-csharp driver) - Using Linq - Using NoRM for strong typing • Accessing MongoDB via REST • Replication • Sharding h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  4. 4. What is No-SQL? h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  5. 5. What is No-SQL? “Next Generation Databases mostly addressing some of the points: being non-relational, distributed, open-source and horizontal scalable. ... schema-free, easy replication support, simple API, eventually consistent ...” - nosql-database.org h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  6. 6. What is No-SQL? “Next Generation Databases mostly addressing some of the points: being non-relational, distributed, open-source and horizontal scalable. ... schema-free, easy replication support, simple API, eventually consistent ...” - nosql-database.org • Non-Relational • Schema-Free • Distributed • Replication Support • Open-Source • Simple API • Horizontally Scalable • Eventually Consistent h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  7. 7. What is No-SQL? It’s about using the right tool for the job. • Not all systems have the same data needs. • Sql is not the only option, nor is it always the best one. • Consider all options carefully and choose wisely. h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  8. 8. What is No-SQL? It’s about using the right tool for the job. • Not all systems have the same data needs. • Sql is not the only option, nor is it always the best one. • Consider all options carefully and choose wisely. Not Only SQL h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  9. 9. What is No-SQL? It’s about using the right tool for the job. • Not all systems have the same data needs. • Sql is not the only option, nor is it always the best one. • Consider all options carefully and choose wisely. Not Only SQL It’s not about flaming SQL. h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  10. 10. What is No-SQL? It’s about using the right tool for the job. • Not all systems have the same data needs. • Sql is not the only option, nor is it always the best one. • Consider all options carefully and choose wisely. Not Only SQL It’s not about flaming SQL. Its about opening our minds to new technologies. h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  11. 11. MongoDB Session Roadmap • What is the NoSQL Movement? • What is MongoDB? • Installing • Using the Mongo Shell • Accessing MongoDB via C# - Basic Driver (mongodb-csharp driver) - Using Linq - Using NoRM for strong typing • Accessing MongoDB via REST • Replication • Sharding h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  12. 12. MongoDB Session Roadmap • What is the NoSQL Movement? • What is MongoDB? • Installing • Using the Mongo Shell • Accessing MongoDB via C# - Basic Driver (mongodb-csharp driver) - Using Linq - Using NoRM for strong typing • Accessing MongoDB via REST • Replication • Sharding h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  13. 13. What is MongoDB? • Document-oriented database - Uses JSON (BSON actually) • Schema-free • Performant - Written in C++ - Full index support - No transactions (has atomic operations) “Mongo only pawn in game of life” - Memory-mapped files (delayed writes) • Scalable - Replication - Auto-Sharding • Commercially supported (10gen) - Lots of documentation h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  14. 14. Other Features of MongoDB • Document-based queries - Flexible document queries expressed in JSON/Javascript. • Map Reduce - Flexible aggregation and data processing. - Queries run in parallel on all shards. • GridFS - Store files of any size easily. • Geospatial Indexing - Find object based on location. (i.e. find closest n items to x) • Many Production Deployments h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  15. 15. Other Features of MongoDB • Supported Platforms - OSX - Linux - Solaris - Windows - FreeBSD h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  16. 16. MongoDB Basic Concepts Document - Analogous to a row in RDBMS - Represented as JSON (BSON) - Hierarchical - Can reference other documents h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  17. 17. MongoDB Basic Concepts Document Collection - Analogous to a row in RDBMS - Analogous to a table in RDBMS - Represented as JSON (BSON) - Collection of documents - Hierarchical - Documents can be anything - Can reference other documents - Advantageous if they are similar h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  18. 18. MongoDB Basic Concepts Embedding - Analogous to a foreign key - Think “pre-joined relationship”. - Clearer conceptual model. - DDD Aggregate Root - Can be - Sub Objects - Collections h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  19. 19. MongoDB Basic Concepts Embedding - Analogous to a foreign key - Think “pre-joined relationship” - Clearer conceptual model. - DDD Aggregate Root - Can be - Sub Objects - Collections References - Analogous to a foreign key - Think “relationship” h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  20. 20. MongoDB Basic Operations Querying All the following queries will find the document. h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  21. 21. MongoDB Basic Operations Querying All the following queries will find the document. By property value h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  22. 22. MongoDB Basic Operations Querying All the following queries will find the document. By property value By embedded object property value h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  23. 23. MongoDB Basic Operations Querying All the following queries will find the document. By property value By embedded object property value With comparison operators h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  24. 24. MongoDB Basic Operations Querying All the following queries will find the document. By property value By embedded object property value With comparison operators Values in collections (implicit “in”) h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  25. 25. MongoDB Basic Operations Indexing h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  26. 26. MongoDB Basic Operations Indexing On property value h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  27. 27. MongoDB Basic Operations Indexing On property value On embedded object property h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  28. 28. MongoDB Basic Operations Indexing On property value On embedded object property On embedded collections h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  29. 29. MongoDB Basic Operations Indexing On property value On embedded object property On embedded collections On multiple keys h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  30. 30. MongoDB Basic Operations Inserting h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  31. 31. MongoDB Basic Operations Updating Using Query/Modify/Save h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  32. 32. MongoDB Basic Operations Updating Using Query/Modify/Save • Requires each object to be loaded in memory. • Requires multiple hits to the database. • Very inefficient. h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  33. 33. MongoDB Basic Operations Updating Using Atomic Updates h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  34. 34. MongoDB Basic Operations Updating Using Atomic Updates • Analogous to transactions. • Requires only one trip to the database. • Operations are atomic. • Can perform multiple operations at once. h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  35. 35. MongoDB System Components h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  36. 36. MongoDB System Components mongod.exe The database server h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  37. 37. MongoDB System Components mongod.exe mongo.exe The database server The interactive shell h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  38. 38. MongoDB System Components mongod.exe mongo.exe The database server The interactive shell mongos.exe The sharding router h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  39. 39. MongoDB Session Roadmap • What is the NoSQL Movement? • What is MongoDB? • Installing • Using the Mongo Shell • Accessing MongoDB via C# - Basic Driver (mongodb-csharp driver) - Using Linq - Using NoRM for strong typing • Accessing MongoDB via REST • Replication • Sharding h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  40. 40. MongoDB Session Roadmap • What is the NoSQL Movement? • What is MongoDB? • Installing • Using the Mongo Shell • Accessing MongoDB via C# - Basic Driver (mongodb-csharp driver) - Using Linq - Using NoRM for strong typing • Accessing MongoDB via REST • Replication • Sharding h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  41. 41. Installing MongoDB 1. Download MongoDB. www.mongodb.com/downloads 2. Extract it. 3. Create the data folder. usually /data/db -or- C:datadb 4. Run mongod.exe h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  42. 42. Installing MongoDB 1. Download MongoDB. www.mongodb.com/downloads 2. Extract it. 3. Create the data folder. usually /data/db -or- C:datadb 4. Run mongod.exe That’s it! h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  43. 43. MongoDB Session Roadmap • What is the NoSQL Movement? • What is MongoDB? • Installing • Using the Mongo Shell • Accessing MongoDB via C# - Basic Driver (mongodb-csharp driver) - Using Linq - Using NoRM for strong typing • Accessing MongoDB via REST • Replication • Sharding h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  44. 44. MongoDB Session Roadmap • What is the NoSQL Movement? • What is MongoDB? • Installing • Using the Mongo Shell • Accessing MongoDB via C# - Basic Driver (mongodb-csharp driver) - Using Linq - Using NoRM for strong typing • Accessing MongoDB via REST • Replication • Sharding h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  45. 45. Accessing MongoDB via the Shell • Inserting a document into a collection. • Querying a collection. • Modifying a document. • Deleting a document. h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  46. 46. Accessing MongoDB via the Shell • Inserting a document into a collection. • Querying a collection. • Modifying a document. • Deleting a document. Lets do it! h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  47. 47. MongoDB Session Roadmap • What is the NoSQL Movement? • What is MongoDB? • Installing • Using the Mongo Shell • Accessing MongoDB via C# - Basic Driver (mongodb-csharp driver) - Using Linq - Using NoRM for strong typing • Accessing MongoDB via REST • Replication • Sharding h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  48. 48. MongoDB Session Roadmap • What is the NoSQL Movement? • What is MongoDB? • Installing • Using the Mongo Shell • Accessing MongoDB via C# - Basic Driver (mongodb-csharp driver) - Using Linq - Using NoRM for strong typing • Accessing MongoDB via REST • Replication • Sharding h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  49. 49. Accessing MongoDB via C# • mongo-csharp-driver - 10gen-supported driver • mongodb-csharp driver - Most mature driver for C#. - Includes LINQ support • NoRM driver - Using NoRM for strongly typed access. - Also has LINQ support h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  50. 50. Accessing MongoDB via C# • mongo-csharp-driver - 10gen-supported driver • mongodb-csharp driver - Most mature driver for C#. - Includes LINQ support • NoRM driver - Using NoRM for strongly typed access. - Also has LINQ support For more information and/or drivers for other languages, check out www.mongodb.org h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  51. 51. Accessing MongoDB via C# Demo h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  52. 52. MongoDB Session Roadmap • What is the NoSQL Movement? • What is MongoDB? • Installing • Using the Mongo Shell • Accessing MongoDB via C# - Basic Driver (mongodb-csharp driver) - Using Linq - Using NoRM for strong typing • Accessing MongoDB via REST • Replication • Sharding h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  53. 53. MongoDB Session Roadmap • What is the NoSQL Movement? • What is MongoDB? • Installing • Using the Mongo Shell • Accessing MongoDB via C# - Basic Driver (mongodb-csharp driver) - Using Linq - Using NoRM for strong typing • Accessing MongoDB via REST • Replication • Sharding h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  54. 54. Accessing MongoDB via REST • To enable basic REST interface, use --rest command line. - mongod.exe --rest • REST interface uses port +1000. - http://127.0.0.1:28017/database/collection/ - http://127.0.0.1:28017/database/collection/?filter&Field=Value • Full REST support is provided by the Sleepy.Mongoose lib. - http://github.com/kchodorow/sleepy.mongoose h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  55. 55. MongoDB Session Roadmap • What is the NoSQL Movement? • What is MongoDB? • Installing • Using the Mongo Shell • Accessing MongoDB via C# - Basic Driver (mongodb-csharp driver) - Using Linq - Using NoRM for strong typing • Accessing MongoDB via REST • Replication • Sharding h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  56. 56. MongoDB Session Roadmap • What is the NoSQL Movement? • What is MongoDB? • Installing • Using the Mongo Shell • Accessing MongoDB via C# - Basic Driver (mongodb-csharp driver) - Using Linq - Using NoRM for strong typing • Accessing MongoDB via REST • Replication • Sharding h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  57. 57. MongoDB Replication • Master-Slave - Master - mongod.exe --master - Slave - mongod.exe --source <master url>:<master port> - Slave can use --slavedelay <delay in seconds> to have a rolling backup. • Replica Pairs (obsolete) • Replica Sets (Suggested Approach) - Full Failover support - Supports more than 2 servers in a replica cluster - Data center and rack aware - Can have passive set members (slaves) that are never primary • Master-Master (limited) - Both masters are also configured as slaves - Safe for insert, delete by id, and any queries - Unsafe for concurrent updates of single object h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  58. 58. MongoDB Session Roadmap • What is the NoSQL Movement? • What is MongoDB? • Installing • Using the Mongo Shell • Accessing MongoDB via C# - Basic Driver (mongodb-csharp driver) - Using Linq - Using NoRM for strong typing • Accessing MongoDB via REST • Replication • Sharding h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  59. 59. MongoDB Session Roadmap • What is the NoSQL Movement? • What is MongoDB? • Installing • Using the Mongo Shell • Accessing MongoDB via C# - Basic Driver (mongodb-csharp driver) - Using Linq - Using NoRM for strong typing • Accessing MongoDB via REST • Replication • Sharding h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  60. 60. MongoDB Auto-Sharding: Features h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  61. 61. MongoDB Auto-Sharding: Features • Based on a defined shard key. h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  62. 62. MongoDB Auto-Sharding: Features • Based on a defined shard key. • Auto-balances as shard servers are added or removed. - Can go from single master to sharded system with zero downtime. h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  63. 63. MongoDB Auto-Sharding: Features • Based on a defined shard key. • Auto-balances as shard servers are added or removed. - Can go from single master to sharded system with zero downtime. • Failover handled through replica sets. (each shard replicated) h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  64. 64. MongoDB Auto-Sharding: Features • Based on a defined shard key. • Auto-balances as shard servers are added or removed. - Can go from single master to sharded system with zero downtime. • Failover handled through replica sets. (each shard replicated) • Map Reduce queries are run in parallel across shards. h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  65. 65. MongoDB Auto-Sharding: Architecture • Shard Servers - Instance of mongod.exe --shardsvr - Optionally configured with a replication set for failover. • Config Servers - Instance of mongod.exe --configsvr - Usually a group of 3. System is up so long as 1 config server is running. • Shard Routers - Instance of mongos.exe --configdb <config server>:<config port> - Acts like mongod.exe to clients. - Can be on the same box as a shard server. - Can run on appserver to reduce traffic. h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  66. 66. MongoDB Auto-Sharding: Architecture Sample Logical Architecture h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  67. 67. MongoDB Auto-Sharding: Architecture Sample Physical Architecture h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  68. 68. MongoDB Auto-Sharding: Configuration Startup Servers • Startup Shard Servers - mongod.exe --shardsvr • Startup Config Servers - mongod.exe --configsvr • Startup Shard Routers - mongos.exe --configdb <config server>:<config port> Configure Cluster • Add Shards to the Cluster - Execute the following command for each shard using either the driver or shell. - db.runcommand( { addshard : “<shard server>:<shard server port>” } ); • Enable Sharding on the Databases to Shard - db.runcommand( { enablesharding : “<dbname>” } ); • Specify Collections to Shard - db.runcommand( { shardCollection : “<collection>”, key : <key pattern> } ); h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  69. 69. MongoDB Session Roadmap • What is the NoSQL Movement? • What is MongoDB? • Installing • Using the Mongo Shell • Accessing MongoDB via C# - Basic Driver (mongodb-csharp driver) - Using Linq - Using NoRM for strong typing • Accessing MongoDB via REST • Replication • Sharding h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  70. 70. MongoDB Session Roadmap • What is the NoSQL Movement? • What is MongoDB? • Installing • Using the Mongo Shell • Accessing MongoDB via C# - Basic Driver (mongodb-csharp driver) - Using Linq - Using NoRM for strong typing • Accessing MongoDB via REST • Replication • Sharding h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP
  71. 71. Introduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP ? h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o m
  72. 72. Introduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP ? h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o m
  73. 73. About Me Chris Edwards Senior Developer at BancVue Ltd. Email: ChrisEdwards357@gmail.com Blog: http://chrisedwards.dreamhosters.com Twitter: @cedwards Github: http://github.com/chrisedwards (Sample code for this talk is posted) h t t p : / / c h r i s e d wa r d s . d r e a m h o s t e r s . c o mIntroduction to MongoDB A No-SQL Persistence AlternativeCENTRAL-TEXAS-.NET-USER-GROUP

×