Skip to main content

Introduction to MongoDB



MongoDB is a No-SQL database. There are several types of No-SQL databases. Specifically MongoDB is a document database. All data/records are stored as documents. The data is stored using JSON (JavaScript object notation) like syntax.

No-SQL databases are much different from relational databases like MYSQL where all the relations are being mapped,figuring out the exact schema including what table, fields, data type of fields is used  etc..

But in No-SQL the structure of the database/collection is planned but no need to predefined the structure before building the application.




Advantages of MongoDB.

  • High scallability.
                   MongoDB is a horizontally scaled so when there is large amount of data it can be distributed to several machines.
  • Faster. 
                   Since MongoDB is a document oriented database it is easy to access documents by indexing. This provides fast query response. MongoDB is 100 times faster than the relational database.
  • Can deal with big data.
  • High availability.
                   Replication and gridFS help to increase data availability in MongoDB so that the performance is high.
  • Flexible database.
                   Since MongoDB is schema-less we can have any type of data in a separate document.Different types of data can be stored freely and flexibly.
  • Sharding.
                   Large amount of data can be stored by distributing it to several servers connected to the application.
  • Ad-hoc query support.

Disadvantages of MongoDB.

  • Limited data size 
                    Document size note more than 16MB is not allowed.
  • Joins are not supported.
                    MongoDB doe not support joins like the relational database. Joins can be used by coding  it manually.
  • High memory usage.
                    MongoDB stores key names for each value pairs and due to no functionality of joins there is data redundancy resulting unnecessary usage of memory.
  • Limited nesting.
                    Cannot perform nesting of documents for more than 100 levels.

Features of MongoDB.




  • Ad-hoc queries.
  • Schema-less database.
  • Documented oriented.
  • Indexing.
  • Replication.


Comments

Popular posts from this blog

Basic concepts on NodeJs

Usecases of NodeJS. Walmart and ebay. Node is not the best platform for CPU intensive heavy computational applications. But it is ideal for building fast and scalable network applications.  NodeJS is capable of handling a huge number of simultaneous connections with high throughput. For each connection NodeJS does not spawn new Thread causing max out of memory instead handle all in single thread using non-blocking I/O model. Using this architecture NodeJS has achieved over 1 Million concurrent connections. Bubbling errors up to NodeJS core event loop will cause crashing the entire program. Netflix and Uber. NodeJs is best for, I/O bound applications. Data streaming applications. Data intensive real-time applications. JSON APIs based applications. Single page applications. Modules in NodeJS. In order  a design to be reliable and maintainable should avoid defining variables and functions in the global scope. Instead we can use modular...

RESTful API

Routers can be created according to REST principles such as get, post, put, delete etc..  GET  =>  get request to r etrieve data from database or data store(An array). POST  =>  post request to insert   data to database or data store(An array). PUT  =>  put request to update the data in database or data store(An array). DELETE  =>  delete request to delete data in database or data store(An array). Creation of routers. In this scenario I have created a schema call users using mongoose.  using mongoose the created users model is retrieved. GET request  using the keyword  " get"   the data can be retrieved.  retrieving all the users in the database. By giving a parameter in the url we can get information according to the given subject.  user is retrieved according to the _id. POST request  using the keyword  "pos t"   the...

Callbacks,Promises,Async Await and Closure in JavaScript.

This weeks blog will be including about callbacks and issues of it,promises which was used to overcome the issues of callbacks and closure in JavaScript. Callbacks, promises and async await All theses ways are used to deal with asynchronous data. By default, JavaScript programs run using a single thread. Though there are ways to create new threads, JavaScript is considered as single threaded language. JavaScript does not wait for I/O operations to get completed, instead it continues the execution of the program. This is called as non-blocking I/O. So that JavaScript is an asynchronous programming language because of this NIO nature. Callbacks, Promises and Async Await. As an example when a request is made to a server it will take couple of seconds to response with the relevant data, therefore you do not want to stall your program till the data is returned. You must keep on going or doing something where callbacks come in. Extra facts. until es6 => callbacks were used es...