KEMBAR78
Connect to NoSQL Database using Node JS.pptx
Connect to NoSQL Database
using Node JS
Dr.T.Abirami
Associate Professor
Department of IT
Kongu Engineering College
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
What Is a Database
• A database is an organized collection of structured
information, or data, typically stored electronically in
a computer system
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
Types of databases
• Centralised database.
• Distributed database.
• Personal database.
• End-user database.
• Commercial database.
• NoSQL database.
• Operational database.
• Relational database.
• Cloud database.
• Object-oriented database.
• Graph database.
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
1. Centralised Database
• The information(data) is stored at a centralized location and
the users from different locations can access this data.
• This type of database contains application procedures that
help the users to access the data even from a remote
location.
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
Distributed Database
• Just opposite of the centralized database concept,
• The data is not at one place and is distributed at various
sites of an organization. These sites are connected to
each other with the help of communication links which
helps them to access the distributed data easily.
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
Introduction to NoSQL
•NoSQL is a type of database management
system (DBMS) that is designed to handle and
store large volumes of unstructured and semi-
structured data.
•NoSQL originally referred to “non-SQL” or “non-
relational” databases
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
NoSQL Database
•It is used for large sets of distributed data.
•There are some big data performance issues which are
effectively handled by relational databases, such kind of
issues are easily managed by NoSQL databases.
•There are very efficient in analyzing large size unstructured
data that may be stored at multiple virtual servers of the
cloud.
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
Cloud and Database
• A cloud is a network of remote servers that are connected to the
internet, and are used to store, manage and process data.
• Cloud services can be divided into three categories:
• Infrastructure as a Service (IaaS),
• Platform as a Service (PaaS) and
• Software as a Service (SaaS). T
• he main benefit of cloud computing is its scalability, as well as its
ability to provide on-demand access to computing resources and
services.
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
Cloud and Database
• A database is a collection of data that is organized in a specific way
and can be accessed, managed and updated by a software
application.
• Databases are used to store and retrieve data in an efficient and
organized manner.
• There are different types of databases, such as
• relational databases (MySQL, Oracle, MS SQL), NoSQL databases
(MongoDB, Cassandra, Redis) and graph databases (Neo4j).
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
Cloud and Database
• cloud is a type of technology that provides access to
remote servers and computing resources
• database is a collection of data that is organized and
managed by a specific software.
• While they are different, they can be used together,
such as running a database in a cloud environment.
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
JSON / JavaScript Object Notation Basics
• It is a text-based data exchange format.
• It is a collection of key-value pairs
• where the key must be a string type, and the value can be of any of the
following types:
• Number
• String
• Boolean
• Array
• Object
• null
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
Simple JSON Data
{
"name": "Alex C",
"age": 22,
"city": “Erode"
}
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
[
{
"name": "Alex C",
"age": 24,
"city": “Erode"
},
{
"name": "John G",
"age": 40,
"city": "Washington"
},
{
"name": "Bala T",
"age": 22,
"city": "Bangalore"
}
]
JSON Data with a
Collection of Ordered
Records
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
Employee Data in
JSON Format
{
"name": "Aleix Melon",
"id": "E00245",
"role": ["Dev", "DBA"],
"age": 23,
"doj": "11-12-2019",
"married": false,
"address": {
"street": "32, Laham St.",
"city": "Innsbruck",
"country": "Austria"
},
"referred-by": "E0012"
}
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
[ { "name": "Aleix Melon",
"id": "E00245",
"role": ["Dev", "DBA"],
"age": 23,
"doj": "11-12-2019",
"married": false,
"address": { "street": "32, Laham St.",
"city": "Innsbruck",
"country": "Austria"
}, "referred-by": "E0012"
},
{ "name": "Bob Washington",
"id": "E01245",
"role": ["HR"], "age": 43,
"doj": "10-06-2010", "married": true,
"address": { "street": "45, Abraham Lane.",
"city": "Washington", "country": "USA"
}, "referred-by": null } ]
An Array of Employee
Data in JSON Format
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
File: first.json
{"employees":[
{"name":"Sonoo", "email":"sonoojaiswal1987@gmail.com"},
{"name":"Rahul", "email":"rahul32@gmail.com"},
{"name":"John", "email":"john32bob@gmail.com"}
]}
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
MongoDB
• MongoDB is a NoSQL database.
• MongoDB is an open source, document oriented database
that stores data in form of documents (key and value pairs).
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
Fields (key and value pairs) are stored in document, documents are
stored in collection and collections are stored in database.
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
CRUD operations in MongoDB
• Create: This operation allows you to insert new documents into a
MongoDB collection. A document is a data structure that consists of field-
value pairs, similar to a JSON object.
• Read: This operation allows you to retrieve data from a MongoDB
collection. You can retrieve a single document or multiple documents that
match a specific query.
• Update: This operation allows you to modify existing documents in a
MongoDB collection. You can update one or multiple documents that
match a specific query.
• Delete: This operation allows you to remove documents from a MongoDB
collection. You can delete a single document or multiple documents that
match a specific query.
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
Download MongoDB
• download MongoDB from the official website:
https://www.mongodb.com/download-
center/community.
• MongoDB driver for our programming language.
• using the official MongoDB driver for Node.js.
• You can install it by running the following command:
npm install mongodb
npm install mongoose
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
Step 1 : Check properly installed or not
Open cmd and type:
• mongod -version
• mongo -version
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
Step 2 : Server on & Client on
Open two separate cmd and type: One for server & another for
client
• mongod
• mongo
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
Within Mongo (Client) window
Shows databases
show dbs
Ans:
admin 0.000GB
config 0.000GB
local 0.000GB
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
Create database
use Employee
Ans:
switched to db Employee
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
Create collection /table
db.createCollection("posts")
Ans:
{ "ok" : 1 }
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
Insert data
db.posts.insertOne({name:"abi"})
Ans:
{
"acknowledged" : true,
"insertedId" :
ObjectId("643e391ee1f9ddc511f3beaf")
}
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
View / Select /find a data
db.posts.find()
Ans:
{ "_id" : ObjectId("643e391ee1f9ddc511f3beaf"),
"name" : "abi" }
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
Update command
db.posts.update({name:"abi"},{$set:{name:"helloword"}})
Ans:
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1
})
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
Delete command
db.posts.deleteOne({ name: "helloword" })
Ans:
{ "acknowledged" : true, "deletedCount" : 1 }
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
MongoDB – sort() Method
• The sort() method specifies the order in which the query returns the
matching documents from the given collection.
db.Collection_Name.sort({filed_name:1 or -1})
db.student.find().sort({age:1})
• Parameter:
The value is 1 or -1 that specifies an ascending or descending
sort respectively. The type of parameter is a document.
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
Connect Node.js with NoSQL MongoDB
Database
Install mongoose:
• Step 1: install the mongoose module. You can install this package by using
this command.
npm install mongoose
• Step 2: Now you can import the mongoose module in your file using:
const mongoose = require('mongoose');
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
Mongoose Module Introduction
•It provides several functions in order to
manipulate the documents of the collection of
the MongoDB database
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
Mongoose
• Mongoose is an Object Data Modeling (ODM) tool designed
to work in an asynchronous environment.
• Mongoose schema as a blueprint for defining the structure
of a Mongoose model that maps directly to a MongoDB
collection.
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
• -->unifiedtopology : DeprecationWarning: current Server Discovery and
Monitoring engine is deprecated, and will be removed in a future version.
• To use the new Server Discover and Monitoring engine, pass option {
useUnifiedTopology: true } to the MongoClient constructor.
• -->usenewurlparser : DeprecationWarning: current URL string parser is
deprecated, and will be removed in a future version. To use the new parser,
pass option { useNewUrlParser: true } to MongoClient.connect.
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
Step 1 : create schema and set model
const mongoose =require("mongoose")
const url = "mongodb://localhost:27017/project";
const name = new mongoose.Schema({ name: String,
age:Number, rollno:String });
const Name= mongoose.model('Name',name)
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
const db = async() =>{
try{
console.log("entered")
const data=await mongoose.connect(url,
{
useNewUrlParser: true,
useUnifiedTopology: true,
family: 4,
}
)
console.log("connected")
}
catch(err){
console.log(err)
}
}
db()
Step 2 : create
connection
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
Insert data
const insertdata=async()=>{
const cat = new Name({ name: 'Zildjian' , age:25, rollno:"21ITR089"});
cat.save().then(() => console.log('Saved in db'));
}
Insertdata()
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
Update query
const updatedata=async() => {
const filter = { name: "Zildjian" };
const update = { age: 97 };
let doc = await Name.findOneAndUpdate(filter, update);
console.log(doc.name); // 'Luke Skywalker'
console.log(doc.age); // undefined
}
updatedata()
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
Delete query
const deletedata=async() => {
await Name.deleteMany({name: 'Zildjian'});
}
deletedata()
Dr.T.Abirami / Associate Professor / Department of IT/ KEC
Reference
• https://masteringjs.io/mongoose
• https://www.mongodb.com/docs/manual/tutorial/install-mongodb-
on-windows/
• https://mongoosejs.com/docs/5.x/docs/tutorials/findoneandupdate.
html
Dr.T.Abirami / Associate Professor / Department of IT/ KEC

Connect to NoSQL Database using Node JS.pptx

  • 1.
    Connect to NoSQLDatabase using Node JS Dr.T.Abirami Associate Professor Department of IT Kongu Engineering College Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 2.
    What Is aDatabase • A database is an organized collection of structured information, or data, typically stored electronically in a computer system Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 3.
    Types of databases •Centralised database. • Distributed database. • Personal database. • End-user database. • Commercial database. • NoSQL database. • Operational database. • Relational database. • Cloud database. • Object-oriented database. • Graph database. Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 4.
    1. Centralised Database •The information(data) is stored at a centralized location and the users from different locations can access this data. • This type of database contains application procedures that help the users to access the data even from a remote location. Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 5.
    Distributed Database • Justopposite of the centralized database concept, • The data is not at one place and is distributed at various sites of an organization. These sites are connected to each other with the help of communication links which helps them to access the distributed data easily. Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 6.
    Introduction to NoSQL •NoSQLis a type of database management system (DBMS) that is designed to handle and store large volumes of unstructured and semi- structured data. •NoSQL originally referred to “non-SQL” or “non- relational” databases Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 7.
    NoSQL Database •It isused for large sets of distributed data. •There are some big data performance issues which are effectively handled by relational databases, such kind of issues are easily managed by NoSQL databases. •There are very efficient in analyzing large size unstructured data that may be stored at multiple virtual servers of the cloud. Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 8.
    Cloud and Database •A cloud is a network of remote servers that are connected to the internet, and are used to store, manage and process data. • Cloud services can be divided into three categories: • Infrastructure as a Service (IaaS), • Platform as a Service (PaaS) and • Software as a Service (SaaS). T • he main benefit of cloud computing is its scalability, as well as its ability to provide on-demand access to computing resources and services. Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 9.
    Cloud and Database •A database is a collection of data that is organized in a specific way and can be accessed, managed and updated by a software application. • Databases are used to store and retrieve data in an efficient and organized manner. • There are different types of databases, such as • relational databases (MySQL, Oracle, MS SQL), NoSQL databases (MongoDB, Cassandra, Redis) and graph databases (Neo4j). Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 10.
    Cloud and Database •cloud is a type of technology that provides access to remote servers and computing resources • database is a collection of data that is organized and managed by a specific software. • While they are different, they can be used together, such as running a database in a cloud environment. Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 11.
    Dr.T.Abirami / AssociateProfessor / Department of IT/ KEC
  • 12.
    JSON / JavaScriptObject Notation Basics • It is a text-based data exchange format. • It is a collection of key-value pairs • where the key must be a string type, and the value can be of any of the following types: • Number • String • Boolean • Array • Object • null Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 13.
    Simple JSON Data { "name":"Alex C", "age": 22, "city": “Erode" } Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 14.
    [ { "name": "Alex C", "age":24, "city": “Erode" }, { "name": "John G", "age": 40, "city": "Washington" }, { "name": "Bala T", "age": 22, "city": "Bangalore" } ] JSON Data with a Collection of Ordered Records Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 15.
    Employee Data in JSONFormat { "name": "Aleix Melon", "id": "E00245", "role": ["Dev", "DBA"], "age": 23, "doj": "11-12-2019", "married": false, "address": { "street": "32, Laham St.", "city": "Innsbruck", "country": "Austria" }, "referred-by": "E0012" } Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 16.
    [ { "name":"Aleix Melon", "id": "E00245", "role": ["Dev", "DBA"], "age": 23, "doj": "11-12-2019", "married": false, "address": { "street": "32, Laham St.", "city": "Innsbruck", "country": "Austria" }, "referred-by": "E0012" }, { "name": "Bob Washington", "id": "E01245", "role": ["HR"], "age": 43, "doj": "10-06-2010", "married": true, "address": { "street": "45, Abraham Lane.", "city": "Washington", "country": "USA" }, "referred-by": null } ] An Array of Employee Data in JSON Format Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 17.
    File: first.json {"employees":[ {"name":"Sonoo", "email":"sonoojaiswal1987@gmail.com"}, {"name":"Rahul","email":"rahul32@gmail.com"}, {"name":"John", "email":"john32bob@gmail.com"} ]} Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 18.
    MongoDB • MongoDB isa NoSQL database. • MongoDB is an open source, document oriented database that stores data in form of documents (key and value pairs). Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 19.
    Fields (key andvalue pairs) are stored in document, documents are stored in collection and collections are stored in database. Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 20.
    Dr.T.Abirami / AssociateProfessor / Department of IT/ KEC
  • 21.
    CRUD operations inMongoDB • Create: This operation allows you to insert new documents into a MongoDB collection. A document is a data structure that consists of field- value pairs, similar to a JSON object. • Read: This operation allows you to retrieve data from a MongoDB collection. You can retrieve a single document or multiple documents that match a specific query. • Update: This operation allows you to modify existing documents in a MongoDB collection. You can update one or multiple documents that match a specific query. • Delete: This operation allows you to remove documents from a MongoDB collection. You can delete a single document or multiple documents that match a specific query. Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 22.
    Download MongoDB • downloadMongoDB from the official website: https://www.mongodb.com/download- center/community. • MongoDB driver for our programming language. • using the official MongoDB driver for Node.js. • You can install it by running the following command: npm install mongodb npm install mongoose Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 23.
    Dr.T.Abirami / AssociateProfessor / Department of IT/ KEC
  • 24.
    Dr.T.Abirami / AssociateProfessor / Department of IT/ KEC
  • 25.
    Dr.T.Abirami / AssociateProfessor / Department of IT/ KEC
  • 26.
    Dr.T.Abirami / AssociateProfessor / Department of IT/ KEC
  • 27.
    Step 1 :Check properly installed or not Open cmd and type: • mongod -version • mongo -version Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 28.
    Step 2 :Server on & Client on Open two separate cmd and type: One for server & another for client • mongod • mongo Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 29.
    Within Mongo (Client)window Shows databases show dbs Ans: admin 0.000GB config 0.000GB local 0.000GB Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 30.
    Create database use Employee Ans: switchedto db Employee Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 31.
    Create collection /table db.createCollection("posts") Ans: {"ok" : 1 } Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 32.
    Insert data db.posts.insertOne({name:"abi"}) Ans: { "acknowledged" :true, "insertedId" : ObjectId("643e391ee1f9ddc511f3beaf") } Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 33.
    View / Select/find a data db.posts.find() Ans: { "_id" : ObjectId("643e391ee1f9ddc511f3beaf"), "name" : "abi" } Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 34.
    Update command db.posts.update({name:"abi"},{$set:{name:"helloword"}}) Ans: WriteResult({ "nMatched": 1, "nUpserted" : 0, "nModified" : 1 }) Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 35.
    Delete command db.posts.deleteOne({ name:"helloword" }) Ans: { "acknowledged" : true, "deletedCount" : 1 } Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 36.
    MongoDB – sort()Method • The sort() method specifies the order in which the query returns the matching documents from the given collection. db.Collection_Name.sort({filed_name:1 or -1}) db.student.find().sort({age:1}) • Parameter: The value is 1 or -1 that specifies an ascending or descending sort respectively. The type of parameter is a document. Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 37.
    Connect Node.js withNoSQL MongoDB Database Install mongoose: • Step 1: install the mongoose module. You can install this package by using this command. npm install mongoose • Step 2: Now you can import the mongoose module in your file using: const mongoose = require('mongoose'); Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 38.
    Mongoose Module Introduction •Itprovides several functions in order to manipulate the documents of the collection of the MongoDB database Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 39.
    Mongoose • Mongoose isan Object Data Modeling (ODM) tool designed to work in an asynchronous environment. • Mongoose schema as a blueprint for defining the structure of a Mongoose model that maps directly to a MongoDB collection. Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 40.
    • -->unifiedtopology :DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. • To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor. • -->usenewurlparser : DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect. Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 41.
    Step 1 :create schema and set model const mongoose =require("mongoose") const url = "mongodb://localhost:27017/project"; const name = new mongoose.Schema({ name: String, age:Number, rollno:String }); const Name= mongoose.model('Name',name) Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 42.
    const db =async() =>{ try{ console.log("entered") const data=await mongoose.connect(url, { useNewUrlParser: true, useUnifiedTopology: true, family: 4, } ) console.log("connected") } catch(err){ console.log(err) } } db() Step 2 : create connection Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 43.
    Insert data const insertdata=async()=>{ constcat = new Name({ name: 'Zildjian' , age:25, rollno:"21ITR089"}); cat.save().then(() => console.log('Saved in db')); } Insertdata() Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 44.
    Update query const updatedata=async()=> { const filter = { name: "Zildjian" }; const update = { age: 97 }; let doc = await Name.findOneAndUpdate(filter, update); console.log(doc.name); // 'Luke Skywalker' console.log(doc.age); // undefined } updatedata() Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 45.
    Delete query const deletedata=async()=> { await Name.deleteMany({name: 'Zildjian'}); } deletedata() Dr.T.Abirami / Associate Professor / Department of IT/ KEC
  • 46.
    Reference • https://masteringjs.io/mongoose • https://www.mongodb.com/docs/manual/tutorial/install-mongodb- on-windows/ •https://mongoosejs.com/docs/5.x/docs/tutorials/findoneandupdate. html Dr.T.Abirami / Associate Professor / Department of IT/ KEC