Node.js MongoDB Tutorial cu exemple
În mare parte, toate aplicațiile web moderne au un fel de sistem de stocare a datelor la backend. De exemplu, dacă luați cazul unei aplicații de cumpărături web, date precum prețul unui articol ar fi stocate în baza de date.
Cadrul Node js poate funcționa cu baze de date atât cu relații (cum ar fi Oracle și MS SQL Server) și baze de date non-relaționale (cum ar fi MongoDB). În acest tutorial, vom vedea cum putem folosi bazele de date din aplicațiile Node js.
Node.js și baze de date NoSQL
De-a lungul anilor, bazele de date NoSQL, cum ar fi MongoDB si pentru MySQL au devenit destul de populare ca baze de date pentru stocarea datelor. Capacitatea acestor baze de date de a stoca orice tip de conținut și în special în orice tip de format este ceea ce face aceste baze de date atât de faimoase.
Node.js are capacitatea de a lucra cu ambele MySQL si MongoDB ca baze de date. Pentru a utiliza oricare dintre aceste baze de date, trebuie să descărcați și să utilizați modulele necesare utilizând managerul de pachete Node.
Pentru MySQL, modulul necesar se numește „mysql” și pentru utilizare MongoDB modulul necesar pentru a fi instalat este „Mongoose”.
Cu aceste module, puteți efectua următoarele operații în Node.js
- Gestionați gruparea conexiunilor - Aici puteți specifica numărul de MySQL conexiuni la baze de date care ar trebui menținute și salvate de Node.js.
- Creați și închideți o conexiune la o bază de date. În ambele cazuri, puteți furniza o funcție de apel invers care poate fi apelată ori de câte ori sunt executate metodele de conexiune „creare” și „închidere”.
- Interogările pot fi executate pentru a obține date din bazele de date respective pentru a prelua date.
- Manipularea datelor, cum ar fi inserarea datelor, ștergerea și actualizarea datelor, poate fi realizată și cu aceste module.
Pentru subiectele rămase, ne vom uita la modul în care putem lucra MongoDB baze de date din interior Node.js.
Utilizarea MongoDB și Node.js
După cum sa discutat în subiectul anterior, MongoDB este una dintre cele mai populare baze de date utilizate împreună cu Node.js.
Pe parcursul acestui capitol vom vedea
Cum putem stabili conexiuni cu a MongoDB Baza de date
Cum putem efectua operațiunile normale de citire a datelor dintr-o bază de date, precum și inserarea, ștergerea și actualizarea înregistrărilor într-o MongoDB Bază de date.
În scopul acestui capitol, să presupunem că avem cele de mai jos MongoDB date în loc.
Numele bazei de date: EmployeeDB
Numele colecției: Angajat
Documents { {Employeeid : 1, Employee Name : Guru99}, {Employeeid : 2, Employee Name : Joe}, {Employeeid : 3, Employee Name : Martin}, }
- Instalarea modulelor NPM
Aveți nevoie de un driver pentru a accesa Mongo dintr-o aplicație Node. Există o serie de drivere Mongo disponibile, dar MongoDB este printre cele mai populare. Pentru a instala MongoDB modul, rulați comanda de mai jos
npm instalați mongodb
- Crearea și închiderea unei conexiuni la a MongoDB Bază de date. Fragmentul de cod de mai jos arată cum să creați și să închideți o conexiune la a MongoDB Bază de date.
Explicația codului:
- Primul pas este să includeți modulul mangoose, care se face prin funcția require. Odată ce acest modul este instalat, putem folosi funcțiile necesare disponibile în acest modul pentru a crea conexiuni la baza de date.
- Apoi, specificăm șirul nostru de conexiune la baza de date. În șirul de conectare, există 3 valori cheie care sunt transmise.
- Primul este „mongodb”, care specifică faptul că ne conectăm la o bază de date mongoDB.
- Următorul este „localhost”, ceea ce înseamnă că ne conectăm la o bază de date pe mașina locală.
- Următorul este „EmployeeDB”, care este numele bazei de date definite în nostru MongoDB Bază de date.
- Următorul pas este să ne conectăm efectiv la baza noastră de date. Funcția de conectare preia adresa URL și are posibilitatea de a specifica o funcție de apel invers. Acesta va fi apelat atunci când conexiunea este deschisă la baza de date. Acest lucru ne oferă posibilitatea de a ști dacă conexiunea la baza de date a avut succes sau nu.
- În funcție, scriem șirul „Conexiune stabilită” în consolă pentru a indica faptul că a fost creată o conexiune cu succes.
- În cele din urmă, închidem conexiunea folosind instrucțiunea db.close.
Dacă codul de mai sus este executat corect, șirul „Conectat” va fi scris pe consolă, așa cum se arată mai jos.
- Interogarea datelor în a MongoDB Baza de date - Folosind MongoDB driver, putem prelua și date de la MongoDB baza de date. Secțiunea de mai jos va arăta cum putem folosi driverul pentru a prelua toate documentele din colecția noastră de angajați în baza noastră de date EmployeeDB. Aceasta este colecția de la noi MongoDB baza de date, care conține toate documentele legate de angajați. Fiecare document are un ID de obiect, un nume de angajat și un ID de angajat pentru a defini valorile documentului.
var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost/EmployeeDB'; MongoClient.connect(url, function(err, db) { var cursor = db.collection('Employee').find(); cursor.each(function(err, doc) { console.log(doc); }); });
Explicația codului:
- În primul pas, creăm un cursor (Un cursor este un indicator care este folosit pentru a indica diferitele înregistrări preluate dintr-o bază de date. Cursorul este apoi folosit pentru a itera prin diferitele înregistrări din baza de date. Aici definim un nume variabilă numit cursor care va fi folosit pentru a stoca indicatorul către înregistrările preluate din baza de date) care indică înregistrările care sunt preluate din colecția MongoDb. Avem, de asemenea, posibilitatea de a specifica colecția „Angajat” din care să preluăm înregistrările. Funcția find() este folosită pentru a specifica că dorim să extragem toate documentele din MongoDB de colectare.
- Acum iterăm prin cursor și pentru fiecare document din cursor vom executa o funcție.
- Funcția noastră va imprima pur și simplu conținutul fiecărui document pe consolă.
Notă: - De asemenea, este posibil să preluați o anumită înregistrare dintr-o bază de date. Acest lucru se poate face prin specificarea condiției de căutare în funcția find(). De exemplu, să presupunem că dacă doriți doar să preluați înregistrarea care are numele angajatului ca Guru99, atunci această declarație poate fi scrisă după cum urmează
var cursor=db.collection('Employee').find({EmployeeName: "guru99"})
Dacă codul de mai sus este executat cu succes, următoarea ieșire va fi afișată în consola dumneavoastră.
ieșire:
Din ieșire,
- Veți putea vedea clar că toate documentele din colecție sunt preluate. Acest lucru este posibil prin utilizarea metodei find() a conexiunii mongoDB (db) și iterarea prin toate documentele folosind cursorul.
- Inserarea documentelor într-o colecție – Documentele pot fi inserate într-o colecție folosind metoda insertOne oferită de MongoDB bibliotecă. Fragmentul de cod de mai jos arată cum putem insera un document într-o colecție mongoDB.
var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost/EmployeeDB'; MongoClient.connect(url, function(err, db) { db.collection('Employee').insertOne({ Employeeid: 4, EmployeeName: "NewEmployee" }); });
Explicația codului:
- Aici folosim metoda insertOne din MongoDB bibliotecă pentru a insera un document în colecția Employee.
- Specificăm detaliile documentului cu privire la ceea ce trebuie introdus în colecția Angajat.
Dacă verificați acum conținutul dvs MongoDB baza de date, veți găsi înregistrarea cu Employeeid de 4 și EmployeeName de „NewEmployee” introduse în colecția Employee.
Notă: Consola nu va afișa nicio ieșire deoarece înregistrarea este inserată în baza de date și nicio ieșire nu poate fi afișată aici.
Pentru a verifica dacă datele au fost introduse corect în baza de date, trebuie să executați următoarele comenzi în MongoDB
- Utilizați EmployeeDB
- db.Employee.find({Employeeid :4 })
Prima declarație asigură că sunteți conectat la baza de date EmployeeDb. A doua declarație caută înregistrarea care are ID-ul de angajat 4.
- Actualizarea documentelor dintr-o colecție – Documentele pot fi actualizate într-o colecție folosind metoda updateOne oferită de MongoDB bibliotecă. Fragmentul de cod de mai jos arată cum să actualizați un document dintr-o colecție mongoDB.
var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost/EmployeeDB'; MongoClient.connect(url, function(err, db) { db.collection('Employee').updateOne({ "EmployeeName": "NewEmployee" }, { $set: { "EmployeeName": "Mohan" } }); });
Explicația codului:
- Aici folosim metoda „updateOne” din MongoDB bibliotecă, care este folosită pentru a actualiza un document dintr-o colecție mongoDB.
- Specificăm criteriile de căutare pentru care document trebuie actualizat. În cazul nostru, dorim să găsim documentul care are EmployeeName de „NewEmployee”.
- Apoi vrem să setăm valoarea EmployeeName al documentului de la „NewEmployee” la „Mohan”.
Dacă verificați acum conținutul dvs MongoDB baza de date, veți găsi înregistrarea cu Employeeid de 4 și EmployeeName lui „Mohan” actualizate în colecția Employee.
Pentru a verifica dacă datele au fost actualizate corect în baza de date, trebuie să executați următoarele comenzi în MongoDB
- Utilizați EmployeeDB
- db.Employee.find({Employeeid :4 })
Prima declarație asigură că sunteți conectat la baza de date EmployeeDb. A doua declarație caută înregistrarea care are ID-ul de angajat 4.
- Ștergerea documentelor dintr-o colecție – Documentele pot fi șterse dintr-o colecție folosind metoda „deleteOne” oferită de MongoDB bibliotecă. Fragmentul de cod de mai jos arată cum să ștergeți un document dintr-o colecție mongoDB.
var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost/EmployeeDB'; MongoClient.connect(url, function(err, db) { db.collection('Employee').deleteOne( { "EmployeeName": "Mohan" } ); });
Explicația codului:
- Aici folosim metoda „deleteOne” din MongoDB bibliotecă, care este folosită pentru a șterge un document dintr-o colecție mongoDB.
- Specificăm criteriile de căutare pentru care document trebuie șters. În cazul nostru, dorim să găsim documentul care are EmployeeName „Mohan” și să ștergem acest document.
Dacă verificați acum conținutul dvs MongoDB baza de date, veți găsi înregistrarea cu Employeeid de 4 și EmployeeName de „Mohan” șterse din colecția Employee.
Pentru a verifica dacă datele au fost actualizate corect în baza de date, trebuie să executați următoarele comenzi în MongoDB
- Utilizați EmployeeDB
- db.Employee.find()
Prima declarație asigură că sunteți conectat la baza de date EmployeeDb. A doua declarație caută și afișează toate înregistrările din colecția angajaților. Aici puteți vedea dacă înregistrarea a fost ștearsă sau nu.
Cum să construiți o aplicație Node Express cu MongoDB pentru a stoca și a difuza conținut
Construirea unei aplicații cu o combinație a ambelor utilizând expres și MongoDB este destul de comună în zilele noastre.
Când lucrați cu JavaScenariu aplicații bazate pe web, se va folosi în mod normal aici termenul de stivă MEAN.
- Termenul MEAN stack se referă la o colecție de JavaTehnologii bazate pe scripturi utilizate pentru a dezvolta aplicații web.
- MEAN este un acronim pentru MongoDB, ExpressJS, AngularJS, și Node.js.
Prin urmare, este întotdeauna bine să înțelegeți cum Node.js și MongoDB lucrează împreună pentru a furniza aplicații care interacționează cu bazele de date backend.
Să ne uităm la un exemplu simplu despre cum putem folosi „express” și „MongoDB” împreună. Exemplul nostru va folosi aceeași colecție de angajați în MongoDB Baza de date EmployeeDB.
Vom încorpora acum Express pentru a afișa datele pe pagina noastră web atunci când acestea sunt solicitate de utilizator. Când aplicația noastră rulează pe Node.js, este posibil să fie nevoie să răsfoiți adresa URL http://localhost:3000/Employeeid.
La lansarea paginii, vor fi afișate toate ID-urile angajatului din colecția Employee. Deci, să vedem fragmentul de cod în secțiuni care ne vor permite să realizăm acest lucru.
Pas 1) Definiți toate bibliotecile care trebuie utilizate în aplicația noastră, care în cazul nostru este atât MongoDB și bibliotecă expresă.
Explicația codului:
- Definim biblioteca noastră „express”, care va fi folosită în aplicația noastră.
- Ne definim "MongoDB', care va fi folosită în aplicația noastră pentru conectarea la sistemul nostru MongoDB Bază de date.
- Aici definim adresa URL a bazei de date la care să ne conectăm.
- În cele din urmă, definim un șir care va fi folosit pentru a stoca colecția noastră de id-uri de angajați care trebuie să fie afișate în browser mai târziu.
Pas 2) În acest pas, acum vom obține toate înregistrările din colecția noastră „Angajați” și vom lucra cu ele în consecință.
Explicația codului:
- Creăm o rută către aplicația noastră numită „Employeeid”. Deci ori de câte ori cineva navighează la http://localhost:3000/Employeeid al aplicației noastre, fragmentul de cod definit pentru această rută va fi executat.
- Aici obținem toate înregistrările din colecția noastră „Angajat” prin comanda db.collection(„Angajat”).find(). Apoi atribuim această colecție unei variabile numite cursor. Folosind această variabilă de cursor, vom putea naviga prin toate înregistrările colecției.
- Acum folosim funcția cursor.each() pentru a naviga prin toate înregistrările colecției noastre. Pentru fiecare înregistrare, vom defini un fragment de cod despre ce trebuie făcut atunci când fiecare înregistrare este accesată.
- În cele din urmă, vedem că dacă înregistrarea returnată nu este nulă, atunci luăm angajatul prin comanda „item.Employeeid”. Restul codului este doar pentru a construi un cod HTML adecvat, care va permite ca rezultatele noastre să fie afișate corect în browser.
Pas 3) În acest pas, vom trimite rezultatele noastre către pagina web și vom face ca aplicația noastră să asculte pe un anumit port.
Explicația codului:
- Aici trimitem întregul conținut care a fost construit în pasul anterior către pagina noastră web. Parametrul „res” ne permite să trimitem conținut către pagina noastră web ca răspuns.
- Facem ca întreaga noastră aplicație Node.js să asculte pe portul 3000.
ieșire:
Din ieșire,
- Arată în mod clar că toate datele angajaților din colecția Employee au fost recuperate. Acest lucru se datorează faptului că folosim MongoDB driver pentru a se conecta la baza de date și a prelua toate înregistrările angajaților și, ulterior, a folosit „express” pentru a afișa înregistrările.
Iată codul pentru referință
var express = require('express'); var app = express(); var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost/EmployeeDB'; var str = ""; app.route('/Employeeid').get(function(req, res) { MongoClient.connect(url, function(err, db) { var cursor = db.collection('Employee').find(); //noinspection JSDeprecatedSymbols cursor.each(function(err, item) { if (item != null) { str = str + " Employee id " + item.Employeeid + "</br>"; } }); res.send(str); db.close(); }); }); var server = app.listen(3000, function() {});
Notă: cursor.each poate depreciat în funcție de versiunea dvs MongoDB conducător auto. Puteți adăuga //noinspection JSDeprecatedSymbols înainte de cursor.each pentru a evita problema. Alternativ, puteți utiliza forEach. Mai jos este exemplul de cod folosind forEach
var express = require('express'); var app = express(); var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost/EmployeeDB'; var str = ""; app.route('/Employeeid').get(function(req, res) { MongoClient.connect(url, function(err, db) { var collection = db.collection('Employee'); var cursor = collection.find({}); str = ""; cursor.forEach(function(item) { if (item != null) { str = str + " Employee id " + item.Employeeid + "</br>"; } }, function(err) { res.send(err); db.close(); } ); }); }); var server = app.listen(8080, function() {});
Rezumat
- Node.js este folosit împreună cu NoSQL baze de date pentru a construi o mulțime de aplicații web moderne. Unele dintre bazele de date comune utilizate sunt MySQL si MongoDB.
- Unul dintre modulele comune utilizate pentru lucrul cu MongoDB baze de date este un modul numit „MongoDB.' Acest modul este instalat prin managerul de pachete Node.
- Cu MongoDB modul, este posibil să interogați înregistrările dintr-o colecție și să efectuați operațiunile normale de actualizare, ștergere și inserare.
- În cele din urmă, una dintre practicile moderne este utilizarea cadrului expres împreună cu MongoDB pentru a furniza aplicații moderne. Cadrul Express poate folosi datele returnate de MongoDB driver și afișați datele utilizatorului în pagina web în consecință.