MongoDB 101
Session I Topics
• What is MongoDb?
• Introduction to JSON
• MongoDb Relative to Relational
• Setting up MongoDb on Windows
• Firing up the mongo shell
• Setting up RoboMongo
• Schema? What Schema?
What is MongoDB?
Non Relational
JSON
Document Store
MongoDB is a
Key features of MongoDB
Flexibility
stores data in JSON which
seamlessly maps to
programming languages.
Dynamic schema makes it
easier for your data model
to evolve.
Power
Secondary indexes,
dynamic queries, sorting,
rich updates, upserts
(update if document exists,
insert if doesn’t)
Functionality of RDBMS+
Horizontal scaling of
NRDBMS
Speed/Scaling
Queries are faster due to
non-relational data.
Autosharding allows scaling
your cluster linearly by
adding more machines.
Ease of Use
Easy to install, configure, maintain, and use.
Works right out of the box and you can dive right into app development
Why JSON?
JSONis open, human and machine-readable standard
Supports all basic datatypes: numbers, strings, boolean values, arrays
and hashes
No need for a fixed schema. Just add what you want.
Format is programmer friendly. Unlike you know… XML!
MongoDB uses BSON behind the scenes which is an extended format
for JSON
MongoDB reuses a Javascript engine for their queries. Makes complete
sense in the world to re-use JSON for object representation.
JSON Basics
Light weight, text-based open source standard for data interchange.
Based on a subset of Javascript
Fundamental structure of JSON
Collection of Key-
Value pairs
Array/List of items
{
“name”: “Abhijeet Vaikar”,
“designation”: “PA”,
“age”: 25
}
[“json”, “xml”, “bson”, “bxml”]
JSON Basics
var myArray = [ "John Doe",
29, true, null ];
var myArray2 = [
{ “name”: “John Doe”,
“age”:29},
{ “name”: “Anna Smith”, “age”:
24}
];
Try in console:
myArray[2] – true
myArray2[1].name – Anna Smith
More Arrays: More Objects:
var objectWithNestedArray = {
“name”: “John Doe”,
“interests”:[“Reading”,
“Mountain Biking”, “Hacking”]
};
var objectWithNestedObject =
{
“favorites” : {
“color” : “blue”,
“sport” : “Soccer”
}
};
Try in console:
objectWithNestedArray.interest
s[0] – Reading
objectWithNestedObject.favorit
es.color - blue
JSON Basics Demo
JSON Basics
JSON Specification link: www.json.org
Validate your JSON : www.jsonlint.com
Prettify/Format your JSON: www.jsonprettyprint.com
MongoDB documents
All data in MongoDB is stored as documents (JSON style data structures ).
A collection contains many documents.
Format: Data is stored on disk in BSON (Binary JSON) serialization format.
Document example:
{
_id: ObjectId("5099803df3f4948bd2f98391"),
name: { first: "Alan", last: "Turing" },
birth: new Date('Jun 23, 1912'),
death: new Date('Jun 07, 1954'),
contribs: [ "Turing machine", "Turing test", "Turingery" ]
}
Fields: Fields in a document cannot:
• Start with the dollar ( $ )character
• Contain the dot ( . ) character
• Contain the null character
Maximum document size is 16 megabytes.
Document fields order is maintained following write operations except for _id field
which will always be first.
MongoDB Relative to Relational
Depth of Functionality
Scalability&Performance
Memcached
Key Value stores
MongoDB
SQL Server / MySQL
Where does MongoDB fit?
Setting up MongoDB on Windows
1. Determine if your system is 32-bit / 64-bit and download and execute the setup
from http://www.mongodb.org/downloads. Follow the default steps.
2. Your setup will install mongodb in path C:Program FilesMongoDB 2.x Standard
3. Set environment variables for mongo and mongod processes for convenience
(optional)
4. Configure mongodb to set your data directory using the following command:
mongod.exe --dbpath d:testmongodbdata
5. Start command prompt and trigger mongo executable. You should see:
MongoDB shell version: 2.6.x
connecting to: test
6. Perform the following query for checking out if all is good:
db.poetry.insert({“name” : “Ba Ba Black Sheep”}); //Hit enter
db.poetry.find() //Hit enter
Setting up MongoDB on Windows
If you get the following output:
{
"_id" : ObjectId("542254b633fc68d796ef1867"),
"name" : "Ba Ba Black Sheep"
}
Then you can go like this:
Mongo Shell +
RoboMongo Demo
Schema? What Schema?
Data in MongoDB is schema less. Data model of a document can be modified as
needed.
Helps agile developers! 
{
“_id” : 0,
“height”: 480,
“width”:640,
“tags”: [
“dogs”, “work”
]
}
Document 1
{
“_id” : 1,
“name” : “Birthday”,
“height”: 450,
“width”:640,
“tags”: [
“baby”, “happy”
]
}
Document 2
{
“_id” : 2,
“name” : “Party”,
“height”: 480,
“width”:640,
“tags”: [
“office”, “party”
],
“rating”: 3
}
Document 3
Schemaless data
Demo

MongoDB 101

  • 1.
  • 2.
    Session I Topics •What is MongoDb? • Introduction to JSON • MongoDb Relative to Relational • Setting up MongoDb on Windows • Firing up the mongo shell • Setting up RoboMongo • Schema? What Schema?
  • 3.
    What is MongoDB? NonRelational JSON Document Store MongoDB is a
  • 4.
    Key features ofMongoDB Flexibility stores data in JSON which seamlessly maps to programming languages. Dynamic schema makes it easier for your data model to evolve. Power Secondary indexes, dynamic queries, sorting, rich updates, upserts (update if document exists, insert if doesn’t) Functionality of RDBMS+ Horizontal scaling of NRDBMS Speed/Scaling Queries are faster due to non-relational data. Autosharding allows scaling your cluster linearly by adding more machines. Ease of Use Easy to install, configure, maintain, and use. Works right out of the box and you can dive right into app development
  • 5.
    Why JSON? JSONis open,human and machine-readable standard Supports all basic datatypes: numbers, strings, boolean values, arrays and hashes No need for a fixed schema. Just add what you want. Format is programmer friendly. Unlike you know… XML! MongoDB uses BSON behind the scenes which is an extended format for JSON MongoDB reuses a Javascript engine for their queries. Makes complete sense in the world to re-use JSON for object representation.
  • 6.
    JSON Basics Light weight,text-based open source standard for data interchange. Based on a subset of Javascript Fundamental structure of JSON Collection of Key- Value pairs Array/List of items { “name”: “Abhijeet Vaikar”, “designation”: “PA”, “age”: 25 } [“json”, “xml”, “bson”, “bxml”]
  • 7.
    JSON Basics var myArray= [ "John Doe", 29, true, null ]; var myArray2 = [ { “name”: “John Doe”, “age”:29}, { “name”: “Anna Smith”, “age”: 24} ]; Try in console: myArray[2] – true myArray2[1].name – Anna Smith More Arrays: More Objects: var objectWithNestedArray = { “name”: “John Doe”, “interests”:[“Reading”, “Mountain Biking”, “Hacking”] }; var objectWithNestedObject = { “favorites” : { “color” : “blue”, “sport” : “Soccer” } }; Try in console: objectWithNestedArray.interest s[0] – Reading objectWithNestedObject.favorit es.color - blue
  • 8.
  • 9.
    JSON Basics JSON Specificationlink: www.json.org Validate your JSON : www.jsonlint.com Prettify/Format your JSON: www.jsonprettyprint.com
  • 10.
    MongoDB documents All datain MongoDB is stored as documents (JSON style data structures ). A collection contains many documents. Format: Data is stored on disk in BSON (Binary JSON) serialization format. Document example: { _id: ObjectId("5099803df3f4948bd2f98391"), name: { first: "Alan", last: "Turing" }, birth: new Date('Jun 23, 1912'), death: new Date('Jun 07, 1954'), contribs: [ "Turing machine", "Turing test", "Turingery" ] } Fields: Fields in a document cannot: • Start with the dollar ( $ )character • Contain the dot ( . ) character • Contain the null character Maximum document size is 16 megabytes. Document fields order is maintained following write operations except for _id field which will always be first.
  • 11.
    MongoDB Relative toRelational Depth of Functionality Scalability&Performance Memcached Key Value stores MongoDB SQL Server / MySQL Where does MongoDB fit?
  • 12.
    Setting up MongoDBon Windows 1. Determine if your system is 32-bit / 64-bit and download and execute the setup from http://www.mongodb.org/downloads. Follow the default steps. 2. Your setup will install mongodb in path C:Program FilesMongoDB 2.x Standard 3. Set environment variables for mongo and mongod processes for convenience (optional) 4. Configure mongodb to set your data directory using the following command: mongod.exe --dbpath d:testmongodbdata 5. Start command prompt and trigger mongo executable. You should see: MongoDB shell version: 2.6.x connecting to: test 6. Perform the following query for checking out if all is good: db.poetry.insert({“name” : “Ba Ba Black Sheep”}); //Hit enter db.poetry.find() //Hit enter
  • 13.
    Setting up MongoDBon Windows If you get the following output: { "_id" : ObjectId("542254b633fc68d796ef1867"), "name" : "Ba Ba Black Sheep" } Then you can go like this:
  • 14.
  • 15.
    Schema? What Schema? Datain MongoDB is schema less. Data model of a document can be modified as needed. Helps agile developers!  { “_id” : 0, “height”: 480, “width”:640, “tags”: [ “dogs”, “work” ] } Document 1 { “_id” : 1, “name” : “Birthday”, “height”: 450, “width”:640, “tags”: [ “baby”, “happy” ] } Document 2 { “_id” : 2, “name” : “Party”, “height”: 480, “width”:640, “tags”: [ “office”, “party” ], “rating”: 3 } Document 3
  • 16.