83 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						|
title: MongoDB
 | 
						|
---
 | 
						|
 | 
						|
<img src="https://upload.wikimedia.org/wikipedia/en/thumb/4/45/MongoDB-Logo.svg/527px-MongoDB-Logo.svg.png">
 | 
						|
 | 
						|
 | 
						|
## MongoDB
 | 
						|
 | 
						|
MongoDB is an open-source non-relational database that uses a JSON-like structure to store data. 
 | 
						|
It uses a document model to store and retrieve the data instead of the table model used by relational databases such as SQL or Oracle.
 | 
						|
 | 
						|
MongoDB is a distributed database at its core, so high availability, horizontal scaling, and geographic distribution are built in and easy to use.
 | 
						|
MongoDB in applications built with javascript is mainly used with Mongoose which is a package built on top of native mongo driver . It gives features like schema based design , virtuals , data validations etc. It makes the mongodb experience smooth and easy to use. You can learn more about mongoose [here](https://mongoosejs.com/).
 | 
						|
 | 
						|
### NoSQL Vs RDBMS
 | 
						|
 | 
						|
| MongoDB Terms And Concepts | SQL Terms and Concepts |
 | 
						|
| --- | --- |
 | 
						|
| Database | Database |
 | 
						|
| Collection | Table |
 | 
						|
| Document | Row |
 | 
						|
| Field | Column |
 | 
						|
| Index | Index |
 | 
						|
| Embedded Documents | Table Joins |
 | 
						|
 | 
						|
 | 
						|
### MongoDB Characteristics
 | 
						|
1. Next Generation Database
 | 
						|
2. No Joins
 | 
						|
3. Clustering
 | 
						|
4. Opensource
 | 
						|
5. Schema-Less
 | 
						|
6. No Relationships
 | 
						|
 | 
						|
### Features of MongoDB
 | 
						|
1. Document Database
 | 
						|
2. High Performance
 | 
						|
3. Rich Query Language
 | 
						|
4. High Availability
 | 
						|
5. Horizontal Scalability
 | 
						|
6. Supports Indexing
 | 
						|
 | 
						|
### Cons of MongoDB
 | 
						|
1. Schemaless design requires database manager to ensure certain constraints
 | 
						|
2. Indexing on multiple fields takes more memory
 | 
						|
3. Aggregation queries are at times non-intutive
 | 
						|
 | 
						|
### Sample Document Structure
 | 
						|
{
 | 
						|
   "_id":ObjectId("52ffc33cd85242f436123532"),
 | 
						|
   "name": "Rich Rick",
 | 
						|
   "contact": "8826078979",
 | 
						|
   "dob": "11-04-1997",
 | 
						|
   "address": [
 | 
						|
      {
 | 
						|
         "building": "24 A, Indiana Apt",
 | 
						|
         "pincode": 123456,
 | 
						|
         "city": "Los Angeles",
 | 
						|
         "state": "California"
 | 
						|
      },
 | 
						|
      {
 | 
						|
         "building": "170 A, Acropolis Apt",
 | 
						|
         "pincode": 456899,
 | 
						|
         "city": "Chicago",
 | 
						|
         "state": "Illinois"
 | 
						|
      }
 | 
						|
   ]
 | 
						|
}
 | 
						|
 | 
						|
### More Information
 | 
						|
[What is Mongo DB?](https://www.mongodb.com/what-is-mongodb)
 | 
						|
 | 
						|
[Wikipedia article on Document-oriented Databases](https://en.wikipedia.org/wiki/Document-oriented_database)
 | 
						|
 | 
						|
[SQL vs NoSQL](https://insights.dice.com/2012/07/16/sql-vs-nosql-which-is-better/)
 | 
						|
 | 
						|
[Learn MongoDB from MongoDB](https://university.mongodb.com/)
 | 
						|
 | 
						|
[ACID vs BASE databases](http://www.dataversity.net/acid-vs-base-the-shifting-ph-of-database-transaction-processing/)
 | 
						|
 | 
						|
[Getting Started with MongoDB](https://docs.mongodb.com/manual/tutorial/getting-started/)
 |