Mongodb open data day 2014

31
MongoDB

description

MongoDB Presentation given at RDU Open Data Day, 2014

Transcript of Mongodb open data day 2014

Page 1: Mongodb open data day 2014

MongoDB

Page 2: Mongodb open data day 2014

AGENDA

• Introduction

• NoSQL

• MongoDB

• Concepts/Fundamentals

• Working with MongoDB (hands-on)

Page 3: Mongodb open data day 2014

WHO AM I?

• Software Developer/Architect/Consultant for 15 years.

• Working in the .NET stack (mainly in the web space) since 2001.

• Started getting interested in MongoDB about 2-3 years ago.

David Green

@davidjeetabout.me/davidgreen24

Page 4: Mongodb open data day 2014

WHERE DOES THIS TALK FIT IN?

Page 5: Mongodb open data day 2014

CLASSIC N-TIER ARCHITECTURE

User Interface (UI)

Business Layer/Service

Data LayerYou Are Here

Page 6: Mongodb open data day 2014

AGENDA

• Introduction

• NoSQL

• MongoDB

• Concepts/Fundamentals

• Working with MongoDB (hands-on)

Page 7: Mongodb open data day 2014

WHAT IS NOSQL?

Page 8: Mongodb open data day 2014

All Databases

Relational Databases (Oracle, mySQL,

Postgres, SQL Server)

NoSQL(MongoDB, Redis, Neo4J, Cassandra,

Hbase)

Page 9: Mongodb open data day 2014

No schema enforcedOpen source

Designed to run on large clusters

Not using the relational model

Model not using the SQL

language)

What is NoSQL?Martin Fowler: Some characteristics are common amongst these databases, but none are definitional.

Page 10: Mongodb open data day 2014

NoSQL Database Families*

• HBase• Cassandra• Hypertable

Columnar • Redis

• Riak• Memcached• Voldemort

Key-value

• MongoDB• CouchDB• RavenDB

Document • Neo4J

• GiraffeDB• InfiniteGraph

Graph

* “Seven Databases in Seven Weeks”, Eric Redmond and Jim R. Wilson

Page 11: Mongodb open data day 2014
Page 12: Mongodb open data day 2014

memCachedX

SQL ServerX

MongoDB

X

Page 13: Mongodb open data day 2014

WHO USES THIS NOSQL STUFF?

Page 14: Mongodb open data day 2014
Page 15: Mongodb open data day 2014

AGENDA

• Introduction

• NoSQL

• MongoDB

• Concepts/Fundamentals

• Working with MongoDB (hands-on)

Page 16: Mongodb open data day 2014

WHAT IS MONGODB?

Page 17: Mongodb open data day 2014

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 – e.g. C#, Java, Python, Ruby)

Page 18: Mongodb open data day 2014

Why MongoDB?

1. Open Source - no licensing fees.

2. Relatively developer friendly and easy to ramp up.

3. Fast reads.

Page 19: Mongodb open data day 2014

MongoDB Search Trends – Google

Page 20: Mongodb open data day 2014

WHEN NOT TO USE MONGODB

• Relationships/Join

• Transactions

• Write Safety (High volume of writes/sec. scenarios)

When one or more of the following are insurmountable even after modeling:

Page 21: Mongodb open data day 2014

AGENDA

• Introduction

• NoSQL

• MongoDB

• Concepts/Fundamentals

• Working with MongoDB (hands-on)

Page 22: Mongodb open data day 2014

MONGODB FUNDAMENTALS

Page 23: Mongodb open data day 2014

10GEN QUICK REFERENCE CARD

Page 24: Mongodb open data day 2014

MONGODB - JSON & BSON

JSON Number String Boolean Array Object null

BSON = JSON + ObjectId DateTime Byte Arrays GeoSpatial

Page 25: Mongodb open data day 2014

EXAMPLE BSON DOCUMENT{ "_id" : ObjectId("5218282429f4a04648f64870"), "Title": "What's new in MongoDB 2.4", "Content" : "MongoDB 2.4 represents hundreds of

improvements and features driven by user requests...",

"Author" : { "FirstName" : "David", "LastName" : "Green" }, "CreatedOn" : ISODate("2013-07-19T01:30:52Z"), "LastModifiedOn" : ISODate("2013-08-24T03:27:32Z"), "Comments" : [], "Tags" : [ ”Databases", ”Features", "NoSQL", "MongoDB" ]}

Page 26: Mongodb open data day 2014

INSTALLING MONGO

Page 27: Mongodb open data day 2014

MONGODB DATABASE INSTALL

Starting Up the Server

Page 28: Mongodb open data day 2014

USING THE CONSOLE

Page 29: Mongodb open data day 2014

AGENDA

• Introduction

• NoSQL

• MongoDB

• Concepts/Fundamentals

• Working with MongoDB (hands-on)

Page 30: Mongodb open data day 2014

https://github.com/davidjeet/OpenDataDay/

Page 31: Mongodb open data day 2014

THE END