Vodič za Node.js MongoDB s primjerima

Uglavnom sve moderne web aplikacije imaju nekakav sustav za pohranu podataka na pozadini. Na primjer, ako uzmete slučaj aplikacije za web kupnju, podaci kao što je cijena predmeta pohranili bi se u bazu podataka.

Okvir Node js može raditi s bazama podataka s relacijskim (poput Oracle i MS SQL Server) i nerelacijskim bazama podataka (poput MongoDB). U ovom uputstvu vidjet ćemo kako možemo koristiti baze podataka unutar Node js aplikacija.

U ovom vodiču naučit ćete-

  • Node.js i NoSQL baze podataka
  • Koristeći MongoDB i Node.js
  • Kako izraditi nod express aplikaciju s MongoDB za pohranu i posluživanje sadržaja

Node.js i NoSQL baze podataka

Tijekom godina baze podataka NoSQL poput MongoDB i MySQL postale su prilično popularne kao baze podataka za pohranu podataka. Sposobnost ovih baza podataka da pohranjuju bilo koju vrstu sadržaja, a posebno u bilo kojem tipu formata, čini ove baze podataka tako poznatima.

Node.js ima mogućnost rada s MySQL-om i MongoDB-om kao bazama podataka. Da biste koristili bilo koju od ovih baza podataka, morate preuzeti i koristiti potrebne module pomoću upravitelja paketa Node.

Za MySQL potreban modul naziva se "mysql", a za upotrebu MongoDB-a potreban modul koji treba instalirati je "Mongoose".

Pomoću ovih modula možete izvršiti sljedeće operacije u Node.js

  1. Upravljanje spremanjem veza - ovdje možete odrediti broj veza MySQL baze podataka koje bi trebao održavati i spremati Node.js.
  2. Stvorite i zatvorite vezu s bazom podataka. U oba slučaja možete pružiti funkciju povratnog poziva koja se može pozvati kad god se izvrše metode povezivanja "stvori" i "zatvori".
  3. Upiti se mogu izvršavati za dobivanje podataka iz odgovarajućih baza podataka za preuzimanje podataka.
  4. Ovim modulima također se može postići manipulacija podacima, poput umetanja podataka, brisanja i ažuriranja podataka.

Za preostale teme pogledat ćemo kako možemo raditi s bazama podataka MongoDB unutar Node.js.

Koristeći MongoDB i Node.js

Kao što je raspravljano u prethodnoj temi, MongoDB je jedna od najpopularnijih baza podataka koja se koristi zajedno s Node.js.

Tijekom ovog poglavlja vidjet ćemo

Kako možemo uspostaviti veze s MongoDB bazom podataka

Kako možemo obavljati uobičajene operacije čitanja podataka iz baze podataka, kao i umetanje, brisanje i ažuriranje zapisa u MongoDB bazi podataka.

U svrhu ovog poglavlja, pretpostavimo da imamo dolje navedene MongoDB podatke.

Naziv baze podataka: EmployeeDB

Naziv zbirke: zaposlenik

Documents{{Employeeid : 1, Employee Name : Guru99},{Employeeid : 2, Employee Name : Joe},{Employeeid : 3, Employee Name : Martin},}
  1. Instaliranje NPM modula

Za pristup Mongou iz aplikacije Node potreban vam je upravljački program. Dostupni su brojni mongonski upravljački programi, ali MongoDB je među najpopularnijima. Da biste instalirali MongoDB modul, pokrenite naredbu u nastavku

npm instalirati mongodb

  1. Stvaranje i zatvaranje veze s MongoDB bazom podataka. Ispod isječak koda pokazuje kako stvoriti i zatvoriti vezu s bazom podataka MongoDB.

Objašnjenje koda:

  1. Prvi korak je uključivanje modula mongoose, što se izvodi putem funkcije require. Jednom kada je ovaj modul postavljen, možemo koristiti potrebne funkcije dostupne u ovom modulu za stvaranje veza s bazom podataka.
  2. Dalje, specificiramo naš niz veze s bazom podataka. U nizu za povezivanje postoje 3 prenesene vrijednosti ključa.
  • Prvi je 'mongodb' koji određuje da se povezujemo s mongoDB bazom podataka.
  • Sljedeći je 'localhost' što znači da se povezujemo s bazom podataka na lokalnom stroju.
  • Sljedeće je 'EmployeeDB', što je naziv baze podataka definirane u našoj bazi podataka MongoDB.
  1. Sljedeći je korak zapravo povezivanje s našom bazom podataka. Funkcija povezivanja uzima naš URL i ima mogućnost specificiranja funkcije povratnog poziva. Pozvat će se kad se veza otvori s bazom podataka. To nam daje priliku da znamo je li povezivanje s bazom podataka bilo uspješno ili ne.
  2. U funkciji na konzolu zapisujemo niz "Veza uspostavljena" da bi naznačila da je stvorena uspješna veza.
  3. Konačno, vezu zatvaramo pomoću izraza db.close.

Ako se gornji kôd pravilno izvrši, niz "Connected" zapisat će se na konzolu kao što je prikazano dolje.

  1. Upit za podatke u MongoDB bazi podataka - Korištenjem MongoDB pokretačkog programa također možemo dohvatiti podatke iz MongoDB baze podataka.

    Sljedeći će odjeljak pokazati kako pomoću upravljačkog programa možemo dohvatiti sve dokumente iz naše zbirke Employee u našoj bazi podataka EmployeeDB. Ovo je zbirka u našoj bazi podataka MongoDB, koja sadrži sve dokumente koji se odnose na zaposlenike. Svaki dokument ima ID objekta, ime zaposlenika i ID zaposlenika za definiranje vrijednosti dokumenta.

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);});}); 

Objašnjenje koda:

  1. U prvom koraku stvaramo kursor (Kursor je pokazivač koji se koristi za usmjeravanje na različite zapise preuzete iz baze podataka. Kursor se zatim koristi za itiranje kroz različite zapise u bazi podataka. Ovdje definiramo ime varijable zvano kurzor koje će se koristiti za spremanje pokazivača na zapise preuzete iz baze podataka.) koji upućuje na zapise preuzete iz zbirke MongoDb. Također imamo mogućnost specificiranja zbirke 'Zaposlenik' iz koje ćemo dohvatiti zapise. Funkcija find () koristi se za određivanje da želimo dohvatiti sve dokumente iz zbirke MongoDB.

  2. Sada se krećemo kroz naš kursor i za svaki dokument u kursoru izvršit ćemo funkciju.

  3. Naša funkcija jednostavno ispisuje sadržaj svakog dokumenta na konzolu.

Napomena: - Također je moguće dohvatiti određeni zapis iz baze podataka. To se može učiniti specificiranjem uvjeta pretraživanja u funkciji find (). Na primjer, pretpostavimo ako ste samo htjeli dohvatiti zapis koji ima ime zaposlenika kao Guru99, onda se ova izjava može napisati kako slijedi

var cursor=db.collection('Employee').find({EmployeeName: "guru99"})

Ako se gornji kôd uspješno izvrši, sljedeći će se izlaz prikazati na vašoj konzoli.

Izlaz:

Iz rezultata,

  • Moći ćete jasno vidjeti da su preuzeti svi dokumenti iz zbirke. To je moguće upotrebom metode find () mongoDB veze (db) i iteriranjem kroz sve dokumente pomoću kursora.
  1. Umetanje dokumenata u zbirku - dokumenti se mogu umetnuti u zbirku metodom insertOne koju pruža biblioteka MongoDB. Ispod isječak koda pokazuje kako možemo umetnuti dokument u zbirku 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"});});

Objašnjenje koda:

  1. Ovdje koristimo metodu insertOne iz biblioteke MongoDB za umetanje dokumenta u zbirku Employee.
  2. Navodimo detalje o dokumentu onoga što treba umetnuti u zbirku zaposlenika.

Ako sada provjerite sadržaj svoje baze podataka MongoDB, pronaći ćete zapis s Employeeid od 4 i EmployeeName "NewE Employee" umetnutim u zbirku Employee.

Napomena: Konzola neće prikazati izlaz, jer se zapis umeće u bazu podataka i ovdje se ne može prikazati izlaz.

Da biste provjerili jesu li podaci pravilno umetnuti u bazu podataka, u MongoDB morate izvršiti sljedeće naredbe

  1. Koristite EmployeeDB
  2. db.Efficiee.find ({Employeeid: 4})

Prva izjava osigurava da ste povezani s bazom podataka EmployeeDb. Druga izjava traži zapis koji ima ID zaposlenika 4.

  1. Ažuriranje dokumenata u zbirci - dokumenti se mogu ažurirati u zbirci metodom updateOne koju pruža biblioteka MongoDB. Ispod isječak koda pokazuje kako ažurirati dokument u zbirci 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"}});});

Objašnjenje koda:

  1. Ovdje koristimo metodu "updateOne" iz biblioteke MongoDB, koja se koristi za ažuriranje dokumenta u zbirci mongoDB.
  2. Određujemo kriterije pretraživanja koji dokument treba ažurirati. U našem slučaju želimo pronaći dokument koji nosi naziv EmployeeName "NewE Employee".
  3. Zatim želimo postaviti vrijednost EmployeeName dokumenta iz "NewE Employee" u "Mohan".

Ako sada provjerite sadržaj baze podataka MongoDB, pronaći ćete zapis sa Employeeid od 4 i EmployeeName iz "Mohan" ažuriran u zbirci Employee.

Da biste provjerili jesu li podaci ispravno ažurirani u bazi podataka, morate izvršiti sljedeće naredbe u MongoDB-u

  1. Koristite EmployeeDB
  2. db.Efficiee.find ({Employeeid: 4})

Prva izjava osigurava da ste povezani s bazom podataka EmployeeDb. Druga izjava traži zapis koji ima ID zaposlenika 4.

  1. Brisanje dokumenata u zbirci - dokumenti se mogu izbrisati u zbirci metodom "deleteOne" koju pruža biblioteka MongoDB. Ispod isječak koda pokazuje kako izbrisati dokument u zbirci mongoDB.

var MongoClient = require('mongodb').MongoClient;var url = 'mongodb://localhost/EmployeeDB';MongoClient.connect(url, function(err, db) {db.collection('Employee').deleteOne({"EmployeeName": "Mohan"});});

Objašnjenje koda:

  1. Ovdje koristimo metodu "deleteOne" iz biblioteke MongoDB, koja se koristi za brisanje dokumenta u zbirci mongoDB.
  2. Određujemo kriterije pretraživanja koji dokument treba izbrisati. U našem slučaju želimo pronaći dokument koji ima EmployeeName "Mohan" i izbrisati ovaj dokument.

Ako sada provjerite sadržaj baze podataka MongoDB, pronaći ćete zapis s Employeeid od 4 i EmployeeName iz "Mohan" izbrisan iz zbirke Employee.

Da biste provjerili jesu li podaci ispravno ažurirani u bazi podataka, morate izvršiti sljedeće naredbe u MongoDB-u

  1. Koristite EmployeeDB
  2. db.Efficiee.find ()

Prva izjava osigurava da ste povezani s bazom podataka EmployeeDb. Druga izjava pretražuje i prikazuje sve zapise u kolekciji zaposlenika. Ovdje možete vidjeti je li zapis izbrisan ili ne.

Kako izraditi nod express aplikaciju s MongoDB za pohranu i posluživanje sadržaja

Izgradnja aplikacije s kombinacijom oba koristeći Express i MongoDB prilično je česta u današnje vrijeme.

Kada radite s JavaScript web-aplikacijama, ovdje se obično koristi pojam MEAN stog.

  • Pojam MEAN stog odnosi se na zbirku tehnologija temeljenih na JavaScriptu koje se koriste za razvoj web aplikacija.
  • MEAN je kratica za MongoDB, ExpressJS, AngularJS i Node.js.

Stoga je uvijek dobro razumjeti kako Node.js i MongoDB rade zajedno kako bi isporučili aplikacije koje komuniciraju sa pozadinskim bazama podataka.

Pogledajmo jednostavan primjer kako možemo zajedno koristiti "express" i "MongoDB". U našem primjeru koristit će se ista kolekcija zaposlenika u bazi podataka MongoDB EmployeeDB.

Sada ćemo ugraditi Express za prikaz podataka na našoj web stranici kada to korisnik zatraži. Kada se naša aplikacija izvodi na Node.js, možda će trebati potražiti URL http: // localhost: 3000 / Employeeid .

Kada se stranica pokrene, prikazat će se svi id zaposlenika u zbirci Employee. Dakle, pogledajmo isječak koda u odjeljcima koji će nam omogućiti da to postignemo.

Korak 1) Definirajte sve knjižnice koje se trebaju koristiti u našoj aplikaciji, a to je u našem slučaju i MongoDB i Express knjižnica.

Objašnjenje koda:

  1. Definiramo našu 'ekspresnu' knjižnicu koja će se koristiti u našoj aplikaciji.
  2. Definiramo našu 'ekspresnu' biblioteku koja će se koristiti u našoj aplikaciji za povezivanje s našom MongoDB bazom podataka.
  3. Ovdje definiramo URL naše baze podataka za povezivanje.
  4. Konačno, definiramo niz koji će se koristiti za pohranu naše kolekcije ID-a zaposlenika koji će se kasnije morati prikazati u pregledniku.

Korak 2) U ovom ćemo koraku sada dobiti sve zapise u našoj zbirci 'Zaposlenici' i u skladu s njima raditi.

Objašnjenje koda:

  1. Izrađujemo put do naše aplikacije pod nazivom "Employeeid". Dakle, kad god netko pregleda http: // localhost: 3000 / Employeeid naše aplikacije, izvršit će se isječak koda definiran za ovu rutu.
  2. Ovdje dobivamo sve zapise u našoj zbirci 'Zaposlenik' putem naredbe db.collection ('Zaposlenik'). Find (). Zatim ovu zbirku dodjeljujemo varijabli koja se naziva kursor. Korištenjem ove varijable kursora moći ćemo pregledavati sve zapise zbirke.
  3. Sada koristimo funkciju cursor.each () za kretanje kroz sve zapise naše zbirke. Za svaki ćemo zapis definirati isječak koda o tome što učiniti kada se pristupi svakom zapisu.
  4. Konačno, vidimo da ako vraćeni zapis nije null, tada vodimo zaposlenika putem naredbe "item.E Employeeid". Ostatak koda je samo za stvaranje ispravnog HTML koda koji će omogućiti pravilno prikazivanje naših rezultata u pregledniku.

Korak 3) U ovom ćemo koraku poslati svoj izlaz na web stranicu i natjerati našu aplikaciju da sluša na određenom priključku.

Objašnjenje koda:

  1. Ovdje šaljemo cjelokupni sadržaj izrađen u prethodnom koraku na našu web stranicu. Parametar 'res' omogućuje nam slanje sadržaja na našu web stranicu kao odgovor.
  2. Činimo da naša cijela aplikacija Node.js preslušava na portu 3000.

Izlaz:

Iz rezultata,

  • Jasno pokazuje da su preuzeti svi zaposlenici u zbirci Employee. To je zato što koristimo MongoDB pokretački program za povezivanje s bazom podataka i dohvaćanje svih zapisa zaposlenika, a zatim za prikaz zapisa koristimo "express".

Evo koda za vašu referencu

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 JSDeprecatedSymbolscursor.each(function(err, item) {if (item != null) {str = str + " Employee id " + item.Employeeid + "
";}});res.send(str);db.close();});});var server = app.listen(3000, function() {});

Napomena: kursor. Svaki možda zastario na temelju verzije vašeg MongoDB upravljačkog programa. Možete dodati // noinspection JSDeprecatedSymbols prije kursora.each da zaobiđete problem. Možete koristiti i forEach. Ispod je primjer koda koji koristi 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 + "
";}}, function(err) {res.send(err);db.close();});});});var server = app.listen(8080, function() {});

Sažetak

  • Node.js koristi se zajedno s NoSQL bazama podataka za izgradnju mnogih modernih web aplikacija. Neke od uobičajenih baza podataka koje se koriste su MySQL i MongoDB.
  • Jedan od uobičajenih modula koji se koriste za rad s bazama podataka MongoDB je modul nazvan 'MongoDB'. Ovaj se modul instalira putem upravitelja paketa Node.
  • Pomoću modula MongoDB moguće je tražiti zapise u zbirci i izvoditi uobičajene operacije ažuriranja, brisanja i umetanja.
  • Konačno, jedna od modernih praksi je korištenje izričitog okvira zajedno s MongoDB-om za isporuku modernih aplikacija. Express framework može koristiti podatke koje vraća upravljački program MongoDB i u skladu s tim prikazati podatke korisniku na web stranici.

Zanimljivi članci...