MongoDB for the .NET Developer
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

MongoDB for the .NET Developer

  • 6,819 views
Uploaded on

 

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
6,819
On Slideshare
5,323
From Embeds
1,496
Number of Embeds
6

Actions

Shares
Downloads
129
Comments
0
Likes
8

Embeds 1,496

http://lynnlangit.wordpress.com 1,223
http://lynnlangit.com 269
http://us-w1.rockmelt.com 1
http://moodle.ivybridge.com 1
https://www.linkedin.com 1
https://tasks.crowdflower.com 1

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
  • http://en.wikipedia.org/wiki/MongoDB
  • Source - http://www.10gen.com/what-is-mongodb
  • http://www.mongodb.org/display/DOCS/Use+Cases
  • http://amitpiplani.blogspot.com/2010/05/u-pick-2-selection-for-nosql-providers.html
  • http://www.10gen.com/reference
  • http://www.mongodb.org/downloadshttps://github.com/mongodb/mongo-csharp-driver/downloads
  • https://www.youtube.com/watch?v=k2YFy5IQu1M
  • http://www.mongovue.com/
  • Free conversion (CSV to JSON) - http://www.cparker15.com/code/utilities/csv-to-json/
  • http://www.mongovue.com/2010/06/29/find/
  • http://www.mongovue.com/2010/09/14/updating-collections/
  • http://rickosborne.org/download/SQL-to-MongoDB.pdf
  • http://api.mongodb.org/wiki/current/Aggregation.html
  • http://blog.mongovue.com/2010/11/03/yet-another-mongodb-map-reduce-tutorial/
  • http://www.mongovue.com/2010/11/03/yet-another-mongodb-map-reduce-tutorial/Link to download source data - http://www.geobytes.com/freeservices.htm
  • https://www.youtube.com/watch?v=au-4aYQWrjQ
  • http://learnmongo.com/posts/getting-started-with-mongodb-gridfs/Example: http://stackoverflow.com/questions/4988436/mongodb-gridfs-with-c-how-to-store-files-such-as-images/10645816#10645816Default chunk size is 256kbDb.fs.filesFs.chunkUpload.date.date()
  • http://www.youtube.com/watch?v=NCp4n6xWw68
  • https://www.youtube.com/watch?v=NCp4n6xWw68
  • Lynn

Transcript

  • 1. MongoDB for the .NET Developer Lynn Langit Data Wrangler May 2012 – For NoSQL class
  • 2. What We’ll Cover• What• Why• When and Where• How• How much
  • 3. Section OneMONGODB BASICS
  • 4. What is MongoDB?
  • 5. What is MongoDB?• Open source NoSQL database• Document-oriented• Stores JSON-like documents (dynamic schemas)• Includes a strong query language (javascript)• Powerful, flexible indexing (including geospatial)• Sharding and replication• Cross-Platform (many drivers )
  • 6. ActivityONLINE TUTORIAL - TRY IT OUT
  • 7. Why use MongoDB?• When your source data is ‘document-like’ – i.e. Document Management systems – E-commerce (catalog portion only) – When your source data doesn’t require joins• Archiving / event logging – Real time analytics (based on logging)• Gaming – Geospatial – Mobile
  • 8. So which type of NoSQL? Back to CAP… CA = SQL/RDBMSCP = noSQL/column SQL Sever / SQLHadoop AzureBig Table OracleH-base MySQLMemCacheDB(graph)? Consistency Availability AP = noSQL/document or key/value MongoDB Partitioning DynamoDB CouchDB Cassandra Voldemort
  • 9. Relational & Document Models• Both systems support… – primary keys and indexes – queries with models for sorting / limiting results – a strong typing system – aggregations like SUM(), COUNT(), etc…
  • 10. Document Model Databases have…• No Tables• No T-SQL• No Joins• No pre-defined Schema• Aggregations via Grouping or MapReduce• No Transactions• No Full-text search
  • 11. Unique to MongoDB• BSON supports more complex types (date, geo-spatial, etc…)• Supports dynamic queries via proprietary query language – Uses “find()” which returns a *lazy+ cursor – Ex., “Db.posts.find().sort(,date:-1}).limit(10);” – Multi-key indexes can be created
  • 12. Use 10gen Quick Reference Cards
  • 13. Get MongoDB and Driver(s)• Quick download, zero install• Also get your driver (C# for us)
  • 14. ActivitySETUP MONGODB
  • 15. Starting up MongoDB
  • 16. Using the console
  • 17. Using MongoVue
  • 18. Connecting with MongoVue
  • 19. Using MongoVue
  • 20. Adding Data• Data must be in JSON format - converter• “Insert” CREATES a collection if needed
  • 21. Importing data…using MongoVue
  • 22. ActivityADDING DATA TO MONGODB
  • 23. Viewing Collection Data
  • 24. Using FindFind, Fields, Sort, Count, Skip, Limit, Visualize or Export
  • 25. Data Visualization
  • 26. Understanding Explain• Query execution detail plan• Review number of scanned objects
  • 27. Modifying Data• Update – alone does a replace• Update w/ $set – does an update• Update w/ $inc – increments• Upserts – must be enabled, then insert if new, update if existing• Multiple field updates occur by default
  • 28. Using Update
  • 29. Section TwoMONGODB PROGRAMMING
  • 30. Comparing…
  • 31. ActivityQUERY MONGODB DATA
  • 32. Queries
  • 33. Queries more
  • 34. Queries 3…
  • 35. What is Grouping?• Similar to T-SQL ‘Group By’• Written in javascript
  • 36. MapReduce in MongoDB• Written in JavaScript• Map – Transforms input and emits key => value pairs – These K/V pairs will be reduced• Reduce – Transform key/values to output via aggregation• Finalize (optional)• Filters (optional)
  • 37. Using MapReduce• Example: find the 2 closest cities in each country, except in United States• Using SQL Server (T-SQL) vs.• Using MongoDB (MapReduce)
  • 38. MapReduce in MongoVue - I
  • 39. MapReduce in MongoVue - II
  • 40. ActivityMAPREDUCE IN MONGODB
  • 41. What about Joins?• No traditional joins in MongoDB• Can use Arrays• Can use Embedded Documents• Can use DBRef• Can De-normalize schema
  • 42. Modeling• Use short names – each name is saved for each document, can save up to 30% storage• Keep collections small• Document size maximum is 4 MB• Use GridFS for BLOBs
  • 43. How to Model• Using Velocity
  • 44. Query Tuning• Use best indexes – Non _id – Add columns to index (specificity) – Mulitple columns, most specific first – Test to make sure indexes are being used• Qty scanned s/b same as QTY returned• Use .explain
  • 45. ActivityADD INDEXES TO MONGODB
  • 46. What is GridFS?• Used to hold objects larger than 4 MB
  • 47. ActivityUSING GRIDFS
  • 48. Programming against MongoDB
  • 49. ActivityCONNECTING TO MONGODB WITHC#
  • 50. More Information• MongoDB – http://www.mongodb.org• 10gen – http://www.10gen.com/contact – info@10gen.com• YouTube videos (from Lynn Langit) – MongoDB Playlist - https://www.youtube.com/playlist?list=PLCE5902FB1D284880 &feature=view_all• MongoDB LA UG - http://www.meetup.com/Los-Angeles- MongoDB-User-Group
  • 51. The Changing Data Landscape Other ServicesRDBMS NoSQL
  • 52. • recipes)www.TeachingKidsProgramming.org• Free Courseware (• Do a Recipe  Teach a Kid (Ages 10 ++)• Java or Microsoft SmallBasic 
  • 53. Toward Data Craftsmanship… Follow me @LynnLangit RSS my blog www.LynnLangit.com Hire me • To help build your BI/Big Data solution • To teach your team next gen BI • To learn more about using NoSQL solutions