MongoDB - Overview

MongoDB - Overview

ยท

5 min read

In this blog, we are going to discuss about NoSQL Fundamentals, MongoDB basics and Advanced concepts

Intro - NoSQL

NoSQL can be defined as a database that is employed for managing the massive collection of unstructured data when your data is not piled up in a tabular format or relations like that of relational databases. The term NoSQL came from the word non-SQL or nonrelational. There are a wide variety of existing Relational Databases that have been unsuccessful in solving several complex modern problems such as:

  • A dynamic change in the nature of data - i.e., nowadays data are in structured, semi-structured, nonstructured as well as polymorphic in type.

  • The variety of applications and the type of data feed into them for analysis has now become more diverse and distributed and is approaching cloud-oriented.

  • Also, modern applications and services are serving tens of thousands of users in diverse geo-locations, having various time zones. So data integrity needs to be there at all the times.

Types of NoSQL Database

  • Document-type databases
  • Key-Value stores
  • Graph stores
  • Wide-column stores

Benefits of NoSQL

  • High elastic Scalability
  • Valuable and reliable for big data
  • Reduced dependence/trust in in-house DBAs
  • It's Easy to understand
  • Agile data models

MongoDB - Fundamentals

Mongo DB can be defined as a document-oriented database system that uses the concept of NoSQL. It also provides high availability, and high performance, along with automatic scaling.

Database : In MongoDB, a database can be defined as a physical container for data collection.

Collection : Collections can be defined as a cluster of MongoDB documents that exist within a single database.

Document : A document can be defined as a collection of key-value pairs that contain dynamic schema.

Okay. The theory part is over. Let's get into hands-on part

MongoDB Installation

To get started with MongoDB, you have to install it in your system. You need to find and download the latest version of MongoDB, which will be compatible with your computer system. You can use this http://www.mongodb.org/downloads

MongoDB - Basics

Create Database

use cloudnloud_db;

Drop Database

db.dropDatabase();

show Database

show dbs;

Create Collection

db.createCollection("developers");

Drop Collection

db.developers.drop();

Insert Documents

insert()

db.collection_Name.insert(JSON document)

insertOne()

db.developers.insertOne({ _id: 1, name: "Veera" , skills : "blockchain"})

insertMany()

db.developers.insertMany(
[
  { _id: 2, name: "Kanna" , skills : "blockchain"},
  { _id: 3, name: "Karthik" , skills : "cybersecurity"},
 { _id: 4, name: "Deepika" , skills : "Node js"},
{ _id: 5, name: "Aadhi" , skills : "python"},
]
)

Query Documents

db.developers.find()

db.developers.find().pretty()

Filtering in Queries

db.developers.find( { skills: "blockchain"} )


db.developers.find({$or: [ { skills: "blockchain" }, { name: "karthik" } ] } )


db.developers.find( { "skills": { $in: [ "blockchain", "python" ] } } )

Update Documents


db.developers.update(

{_id: 4},
{
  $set: { instrument: 'blockchain' }
}
)

Delete Documents

db.collection.deleteOne()

db.developers.deleteOne( { name: { $in: [ "Veera", "Kanna"] } } )

db.collection.remove()

db.developers.remove( {} )

db.collection.deleteMany()

db.developers.deleteMany( { name: { $in: [ "Veera", "Kanna" ] } } )

Aggregation

MongoDB offers three different ways of performing aggregation:

  • The aggregation pipeline.
  • The map-reduce function.
  • Single purpose aggregation methods
db.developers.aggregate([{$group : {_id: "$skills", TotalRecords: {$sum : 1}}}])
  • $sum - adds up the definite values of every document of a collection.
  • $avg - computes the average values of every document of a collection.
  • $min - finds and returns the minimum of all values from within a collection.
  • $max- finds and returns the maximum of all values from within a collection.
  • $push - feeds in the values to an array in the associated document.
  • $first - fetches out the first document.
  • $last - fetches out the last document.
  • $addToSet- feeds in the values to an array without duplication.

Sorting

db.techSubjects.find({}, {"topic":1, _id:0}).sort({"topic":1})

Hope you can understand the basic commands in MongoDB

let's move on Advanced concepts

MongoDB - Advance

Indexing

  • Databases having indexes make queries performance more efficient.

  • When you have a collection with thousands of documents and no indexing is done, your query will keep on finding certain documents sequentially.

Create an Index in MongoDB

db.collection_name.createIndex( {KEY:1, KEY:2} )

db.Users.createIndex({"PhoneNo":1})

Advance Indexing

Indexing Fields for Sub-Documents

db.users.ensureIndex( {"location.city":1,"location.country":1} )


db.users.find({"location.city":"Los Angeles"})

DB Replication


mongod --port "PORT" --dbpath "your_db_complete_path" --replSet "instanceName_of_Replica_set"


mongod --port 27017 --dbpath " C:\Program Files\MongoDB\Server\4.0\data" --replSet rs0

DB Export

Export to json

mongoexport --db cloudnloud_db --collection developers --out /developers.json

Export to CSV

mongoexport --db cloudnloud_db --collection developers -type = csv  --out /developers.csv

DB Backup and Restore

mongodump

For creating a backup of your database in MongoDB, make use of the command mongodump.

mongodump -d <database name> -o <backup-folder>

mongodump -d cloudnloud_db -o /backup

mongostore

For restoring all your backup data in your server, MongoDB provides the command mongorestore.

mongorestore -d <database name> --dir <backup-folder>

mongorestore -d cloudnloud_db --dir /backup

Regular EXperession

Use $regex Operator

db.developers.find( {name : {$regex: "vee" }} )

Case Insensitive

db.developers.find( {name : {$regex : "vee", $options:"$i"} })

that's guys. Hope you can get better insights about MongoDB

Keep Learning & Keep Growing

๐Ÿฏ Contributors:

Community and Social Footprints :

Did you find this article valuable?

Support Cloudnloud Tech Community by becoming a sponsor. Any amount is appreciated!

ย