MongoDB is a non-relational database that stores data in JSON-like documents with dynamic schemas. It features flexibility with JSON documents that map to programming languages, power through indexing and queries, and horizontal scaling. The document explains that MongoDB uses JSON and BSON formats to store data, has no fixed schema so fields can evolve freely, and demonstrates working with the mongo shell and RoboMongo GUI.
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?
4. 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
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
9. JSON Basics
JSON Specification link: www.json.org
Validate your JSON : www.jsonlint.com
Prettify/Format your JSON: www.jsonprettyprint.com
10. 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.
11. MongoDB Relative to Relational
Depth of Functionality
Scalability&Performance
Memcached
Key Value stores
MongoDB
SQL Server / MySQL
Where does MongoDB fit?
12. 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
13. 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: