Introduction about Node.js and MongoDB

NoSQL databases are databases that store and retrieve the data that is present in a non-tabular format. Depending on the format of the data stored, NoSQL databases are split into 4 major types:

  • Key-Value
  • Graph database
  • Document-oriented
  • Column family

These databases are built to address the shortcomings of traditional RDBMS and provide high performance, availability and increased scaling (horizontally), while also handling data which constantly changes it’s schema over time. One of the most popular NoSQL databases which are available today is the MongoDB.
MongoDB is a scalable, high-performance, open-source, document-oriented NoSQL database, which was developed by 10gen in the year 2007. It is written in C++ and it supports a variety of APIs in many programming languages.

Key features of MongoDB:

  • Full index support for high performance
  • Horizontally scalable and fault tolerant (distributed data storage/sharding)
  • Rich document based queries for easy readability
  • Replication and failover for high availability
  • Map/Reduce for aggregation
  • Supports Master-Slave replication
  • No joins nor transactions
  • No rigid schema, which makes it dynamic
  • Data represented in JSON / BSON

When to use MongoDB?

MongoDB can be used in places that require simple queries, easy and fast integration of data and have data whose structure changes constantly with time.

Examples:

  • E-commerce websites
  • Mobile applications
  • Blogs and content management portals
  • Storing geospatial data

At the same time, since it doesn’t support transactions, it can’t be used in highly transactional systems.

SQL vs MongoDB

The components used in MySQL and MongoDB have different terminologies, but similar functions.

SQL MongoDB
Database Database
Table Collection
Row Document
Column Field
Index Index

Installing MongoDB (on windows):

Go to the following link (https://www.mongodb.com/download-center/community) and download the MongoDB Community Server.


From here, download the MSI file, and install MongoDB in your computer.

After the installation is complete, open the MongoDB Compass Community application, and select the connect option.


A local instance of MongoDB will now be running on the local host, with the port number 27017.

NodeJS and MongoDB:

Node.js, the open source JavaScript server environment, has the ability to connect to both SQL and NoSQL databases such as MySQL and MongoDB (respectively). In order to use these databases, the required modules need to be downloaded and installed by using the Node Package Manager (npm).

For using the MongoDB, the Mongoose module needs to be installed.

  • Installing Mongoose:

  • Open the command prompt or terminal and type in the following command to install the Mongoose module

    npm install mongoose

  • Connecting to MongoDB using Node.js

  • The following Node.js script is used to connect to the local instance of MongoDB.

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    var client = require('mongodb').MongoClient;
    client.connect(url,{ useNewUrlParser: true }, function(err,db)
    {
         console.log("Connected");
         db.close();
    });

    chevron_right

    
    

    Explanation:

    1. To connect to a database/create a database, a MongoClient object needs to be created.
    2. The URL of the MongoDB, followed by the database name should be specified
    3. Using the connect function of the MongoClient object, a connection is established between the server and the MongoDB.

    Note: The admin database is being used here.

    Running the Node.js file:
    Open the command prompt and navigate to the folder which has the js file, and type in the following command.

    node filename.js



    Note: If the database mentioned in the URL is not present in the MongoDB when a new document is added, the database is created.

  • Querying data from MongoDB:

  • The following code snippet is used to query data from the MongoDB databases.

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    var client = require('mongodb').MongoClient;
    client.connect(url,{ useNewUrlParser: true }, function(err,db)
    {    
            var dbo=db.db("admin")
        var cursor = dbo.collection('geeks4geeks').find();    
        cursor.each(function (err,doc)
        {
            if(doc!=null)
            console.log(doc);
        });
        db.close();
    });

    chevron_right

    
    

    Explanation:

    • Using the URL, a connection with the MongoDB server is established.
    • Using the DB function, a connection to the admin database is created.
    • All the documents present in the geeks4geeks collection is retrieved and displayed in the console.

    Note: The admin database is being used here, which contains the collection geeks4geeks with a few documents in it.

    Running the Node.js file:
    Open the command prompt and navigate to the folder which has the js file, and type in the following command.

    node filename.js



    These are the documents present in the admin database’s geeks4geeks collection.



    My Personal Notes arrow_drop_up

    Check out this Author's contributed articles.

    If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

    Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




    Article Tags :

    1


    Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.