Introduction about Node.js and MongoDB
Last Updated :
28 Mar, 2019
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.
javascript
var client = require('mongodb').MongoClient;
var url = 'mongodb://localhost:27017/admin';
client.connect(url,{ useNewUrlParser: true }, function(err,db)
{
console.log("Connected");
db.close();
});
Explanation:
- To connect to a database/create a database, a MongoClient object needs to be created.
- The URL of the MongoDB, followed by the database name should be specified
- 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.
javascript
var client = require('mongodb').MongoClient;
var url = 'mongodb://localhost:27017/';
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();
});
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.
Similar Reads
MongoDB: An introduction MongoDB is a powerful, open-source NoSQL database that offers a document-oriented data model, providing a flexible alternative to traditional relational databases. Unlike SQL databases, MongoDB stores data in BSON format, which is similar to JSON, enabling efficient and scalable data storage and ret
5 min read
Introduction to MongoDB connection URIs MongoDB is a popular NoSQL database known for its scalability, flexibility, and ease of use. To connect applications to a MongoDB database, developers use MongoDB connection URIs. These URIs specify how clients should connect to a MongoDB instance, including details like authentication credentials,
3 min read
Mongoose Module Introduction Mongoose is a popular Object Data Modeling (ODM) library for MongoDB and Node.js. It provides a straightforward and structured way to interact with MongoDB, allowing you to define schemas for your collections, apply constraints, and validate data before storing it in the database. In this guide, we'
5 min read
How to Integrate MongoDB in Next.js ? A developer considers various options carefully for his or her tech stack before writing code. The primary objective is choosing a tech stack that aligns with the project requirements. Therefore, each tool within the tech stack must seamlessly integrate with others, creating a collaborative developm
10 min read
How to Get Data from MongoDB using Node.js? One can create a simple Node.js application that allows us to get data to a MongoDB database. Here we will use Express.js for the server framework and Mongoose for interacting with MongoDB. Also, we use the EJS for our front end to render the simple HTML form and a table to show the data. Prerequisi
6 min read