Node.js MongoDB Tutoriál s příklady
Většina moderních webových aplikací má na backendu nějaký systém pro ukládání dat. Vezměte si například případ internetového obchoduping V aplikaci by se data, jako například cena položky, ukládala do databáze.
Rámec Node js může pracovat s databázemi s oběma relačními (jako např Oracle a MS SQL Server) a nerelační databáze (jako např MongoDB). V tomto tutoriálu uvidíme, jak můžeme používat databáze z aplikací Node js.
Node.js a NoSQL databáze
V průběhu let se NoSQL databáze jako např MongoDB a pro MySQL se staly velmi populární jako databáze pro ukládání dat. Schopnost těchto databází ukládat jakýkoli typ obsahu a zejména v jakémkoli formátu je to, co dělá tyto databáze tak slavnými.
Node.js má schopnost pracovat s oběma MySQL a MongoDB jako databáze. Abyste mohli používat kteroukoli z těchto databází, musíte si stáhnout a používat požadované moduly pomocí správce balíčků Node.
Pro MySQL, požadovaný modul se nazývá „mysql“ a pro použití MongoDB požadovaný modul k instalaci je „Mongoose“.
S těmito moduly můžete v Node.js provádět následující operace
- Správa sdružování připojení – Zde můžete zadat počet MySQL databázová připojení, která by měla udržovat a ukládat Node.js.
- Vytvořte a uzavřete připojení k databázi. V obou případech můžete poskytnout funkci zpětného volání, kterou lze volat, kdykoli jsou provedeny metody připojení „vytvořit“ a „zavřít“.
- Dotazy lze provádět za účelem získání dat z příslušných databází pro načtení dat.
- S těmito moduly lze také dosáhnout manipulace s daty, jako je vkládání dat, mazání a aktualizace dat.
U zbývajících témat se podíváme, jak s nimi můžeme pracovat MongoDB databáze uvnitř Node.js.
Použití MongoDB a Node.js
Jak bylo uvedeno v předchozím tématu, MongoDB je jednou z nejpopulárnějších databází používaných spolu s Node.js.
Během této kapitoly uvidíme
Jak můžeme navázat spojení s a MongoDB databáze
Jak můžeme provádět běžné operace čtení dat z databáze a také vkládání, mazání a aktualizace záznamů v MongoDB databáze.
Pro účely této kapitoly předpokládejme, že máme níže uvedené MongoDB data na místě.
Název databáze: EmployeeDB
Název sbírky: Zaměstnanec
Documents
{
{Employeeid : 1, Employee Name : Guru99},
{Employeeid : 2, Employee Name : Joe},
{Employeeid : 3, Employee Name : Martin},
}
- Instalace modulů NPM
Pro přístup k Mongo z aplikace Node potřebujete ovladač. K dispozici je řada ovladačů Mongo, ale MongoDB patří mezi nejoblíbenější. Chcete-li nainstalovat MongoDB modulu, spusťte níže uvedený příkaz
npm nainstalovat mongodb
- Vytvoření a uzavření připojení k a MongoDB databáze. Níže uvedený fragment kódu ukazuje, jak vytvořit a ukončit připojení k a MongoDB databáze.
Code Vysvětlení:
- Prvním krokem je zahrnutí modulu mongoose, což se provádí pomocí funkce require. Jakmile je tento modul na svém místě, můžeme použít potřebné funkce dostupné v tomto modulu k vytvoření připojení k databázi.
- Dále specifikujeme náš připojovací řetězec k databázi. V řetězci připojení jsou 3 hodnoty klíče, které se předávají.
- První je 'mongodb', který určuje, že se připojujeme k databázi mongoDB.
- Další je 'localhost', což znamená, že se připojujeme k databázi na místním počítači.
- Další je 'EmployeeDB', což je název databáze definované v našem MongoDB databáze.
- Dalším krokem je skutečné připojení k naší databázi. Funkce připojení přebírá naši adresu URL a má možnost specifikovat funkci zpětného volání. Zavolá se při otevření připojení k databázi. To nám dává příležitost zjistit, zda bylo připojení k databázi úspěšné nebo ne.
- Ve funkci zapisujeme do konzole řetězec „Connection created“ (Připojení navázáno), což znamená, že bylo vytvořeno úspěšné připojení.
- Nakonec spojení uzavřeme pomocí příkazu db.close.
Pokud je výše uvedený kód proveden správně, řetězec „Connected“ bude zapsán do konzole, jak je znázorněno níže.
- Dotazování na data v a MongoDB databáze - Za použití MongoDB ovladače můžeme také načíst data z MongoDB databáze. Níže uvedená část ukáže, jak můžeme použít ovladač k načtení všech dokumentů z naší sbírky zaměstnanců v naší databázi EmployeeDB. Toto je kolekce u nás MongoDB databáze, která obsahuje všechny dokumenty týkající se zaměstnanců. Každý dokument má ID objektu, jméno zaměstnance a ID zaměstnance, které definují hodnoty dokumentu.
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);
});
});
Code Vysvětlení:
- V prvním kroku vytvoříme kurzor (kurzor je ukazatel, který se používá k ukazování na různé záznamy načtené z databáze. Kurzor se pak používá k iteraci různými záznamy v databázi. Zde definujeme název proměnné s názvem kurzor, která bude použita k uložení ukazatele na záznamy načtené z databáze ), která ukazuje na záznamy načtené z kolekce MongoDb. Máme také možnost specifikovat sbírku 'Zaměstnanec', ze které lze získat záznamy. Funkce find() se používá k určení, že chceme načíst všechny dokumenty z MongoDB kolekce.
- Nyní procházíme kurzorem a pro každý dokument v kurzoru provedeme funkci.
- Naše funkce jednoduše vytiskne obsah každého dokumentu do konzole.
Poznámka: - Je také možné načíst konkrétní záznam z databáze. To lze provést zadáním vyhledávací podmínky ve funkci find(). Předpokládejme například, že chcete načíst záznam, který obsahuje jméno zaměstnance jako Guru99, pak lze toto tvrzení zapsat následovně
var cursor=db.collection('Employee').find({EmployeeName: "guru99"})
Pokud je výše uvedený kód úspěšně proveden, zobrazí se ve vaší konzole následující výstup.
Výstup:
Z výstupu,
- Budete moci jasně vidět, že všechny dokumenty ze sbírky jsou načteny. To je možné pomocí metody find() připojení mongoDB (db) a procházením všech dokumentů pomocí kurzoru.
- Vkládání dokumentů do sbírky – Dokumenty lze vkládat do kolekce pomocí metody insertOne poskytované společností MongoDB knihovna. Níže uvedený fragment kódu ukazuje, jak můžeme vložit dokument do kolekce 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"
});
});
Code Vysvětlení:
- Zde používáme metodu insertOne z MongoDB knihovny pro vložení dokumentu do kolekce Zaměstnanci.
- Upřesňujeme podrobnosti dokumentu o tom, co je třeba vložit do kolekce Zaměstnanci.
Pokud nyní zkontrolujete obsah svého MongoDB databázi, najdete záznam s ID zaměstnance 4 a jménem zaměstnance „NovýZaměstnanec“ vložen do kolekce Zaměstnanci.
Poznámka: Konzole neukáže žádný výstup, protože záznam se vkládá do databáze a žádný výstup zde nelze zobrazit.
Chcete-li zkontrolovat, zda byla data správně vložena do databáze, musíte provést následující příkazy MongoDB
- Použijte EmployeeDB
- db.Employee.find({Employeeeid :4 })
První příkaz zajišťuje, že jste připojeni k databázi EmployeeDb. Druhý příkaz hledá záznam, který má ID zaměstnance 4.
- Aktualizace dokumentů ve sbírce – Dokumenty lze v kolekci aktualizovat pomocí metody updateOne poskytované společností MongoDB knihovna. Níže uvedený fragment kódu ukazuje, jak aktualizovat dokument v kolekci 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"
}
});
});
Code Vysvětlení:
- Zde používáme metodu „updateOne“ z MongoDB knihovna, která se používá k aktualizaci dokumentu v kolekci mongoDB.
- Upřesňujeme kritéria vyhledávání, který dokument je třeba aktualizovat. V našem případě chceme najít dokument, který má jméno zaměstnance „NewEmployee“.
- Poté chceme nastavit hodnotu EmployeeName dokumentu z „NewEmployee“ na „Mohan“.
Pokud nyní zkontrolujete obsah svého MongoDB databázi, najdete záznam s id zaměstnance 4 a jménem zaměstnance „Mohan“ aktualizovaný v kolekci Zaměstnanci.
Chcete-li zkontrolovat, zda byla data v databázi správně aktualizována, musíte provést následující příkazy v MongoDB
- Použijte EmployeeDB
- db.Employee.find({Employeeeid :4 })
První příkaz zajišťuje, že jste připojeni k databázi EmployeeDb. Druhý příkaz hledá záznam, který má ID zaměstnance 4.
- Mazání dokumentů ve sbírce – Dokumenty lze odstranit v kolekci pomocí metody „deleteOne“ poskytované společností MongoDB knihovna. Níže uvedený fragment kódu ukazuje, jak odstranit dokument v kolekci mongoDB.
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';
MongoClient.connect(url, function(err, db) {
db.collection('Employee').deleteOne(
{
"EmployeeName": "Mohan"
}
);
});
Code Vysvětlení:
- Zde používáme metodu „deleteOne“ z MongoDB knihovna, která se používá k odstranění dokumentu v kolekci mongoDB.
- Upřesňujeme kritéria vyhledávání, který dokument je třeba smazat. V našem případě chceme najít dokument, který má jméno zaměstnance „Mohan“ a tento dokument smazat.
Pokud nyní zkontrolujete obsah svého MongoDB databázi, najdete záznam s id zaměstnance 4 a jménem zaměstnance „Mohan“ odstraněn z kolekce Zaměstnanci.
Chcete-li zkontrolovat, zda byla data v databázi správně aktualizována, musíte provést následující příkazy v MongoDB
- Použijte EmployeeDB
- db.Employee.find()
První příkaz zajišťuje, že jste připojeni k databázi EmployeeDb. Druhý příkaz vyhledá a zobrazí všechny záznamy v kolekci zaměstnanců. Zde vidíte, zda byl záznam smazán nebo ne.
Jak vytvořit aplikaci Node Express pomocí MongoDB ukládat a poskytovat obsah
Vytvoření aplikace s kombinací obou pomocí expresního a MongoDB je v dnešní době celkem běžné.
Při práci s JavaScénář webové aplikace, zde se obvykle používá termín MEAN stack.
- Termín MEAN stack odkazuje na sbírku JavaTechnologie založené na skriptech používané k vývoji webových aplikací.
- MEAN je zkratka pro MongoDB, ExpressJS, AngularJS, a Node.js.
Proto je vždy dobré porozumět tomu, jak Node.js a MongoDB spolupracovat při poskytování aplikací, které komunikují s backendovými databázemi.
Podívejme se na jednoduchý příklad, jak můžeme použít výrazy „expres“ a „MongoDB" spolu. Náš příklad použije stejnou kolekci zaměstnanců v MongoDB Databáze EmployeeDB.
Nyní začleníme Express k zobrazení dat na naší webové stránce, když si to uživatel vyžádá. Když naše aplikace běží na Node.js, možná bude potřeba přejít na adresu URL http://localhost:3000/Employeeid.
Po spuštění stránky se zobrazí všechna ID zaměstnance v kolekci Employee. Podívejme se tedy na fragment kódu v částech, které nám to umožní.
Krok 1) Definujte všechny knihovny, které je třeba použít v naší aplikaci, což je v našem případě obojí MongoDB a expresní knihovna.
Code Vysvětlení:
- Definujeme naši „expresní“ knihovnu, která bude použita v naší aplikaci.
- Definujeme naše "MongoDB' knihovna, která bude použita v naší aplikaci pro připojení k naší MongoDB databáze.
- Zde definujeme URL naší databáze, ke které se chceme připojit.
- Nakonec definujeme řetězec, který bude použit k uložení naší sbírky ID zaměstnanců, které je třeba později zobrazit v prohlížeči.
Krok 2) V tomto kroku nyní získáme všechny záznamy v naší sbírce „Zaměstnanci“ a podle toho s nimi budeme pracovat.
Code Vysvětlení:
- Vytváříme cestu k naší aplikaci s názvem 'ID zaměstnance.' Takže kdykoli se někdo podívá na http://localhost:3000/Employeeid naší aplikace, bude proveden fragment kódu definovaný pro tuto cestu.
- Zde získáváme všechny záznamy v naší kolekci 'Zaměstnanec' pomocí příkazu db.collection('Employee').find(). Tuto kolekci pak přiřadíme proměnné nazvané kurzor. Pomocí této proměnné kurzoru budeme moci procházet všechny záznamy kolekce.
- Nyní používáme funkci kurzor.each() k procházení všemi záznamy naší sbírky. Pro každý záznam definujeme úryvek kódu o tom, co dělat při přístupu ke každému záznamu.
- Nakonec vidíme, že pokud vrácený záznam není nulový, pak zaměstnance přebíráme příkazem „item.Employeeid“. Zbytek kódu je pouze vytvořit správný HTML kód, který umožní správné zobrazení našich výsledků v prohlížeči.
Krok 3) V tomto kroku odešleme náš výstup na webovou stránku a zajistíme, aby naše aplikace naslouchala na konkrétním portu.
Code Vysvětlení:
- Zde posíláme veškerý obsah, který byl vytvořen v předchozím kroku, na naši webovou stránku. Parametr 'res' nám umožňuje odeslat obsah na naši webovou stránku jako odpověď.
- Celá naše aplikace Node.js poslouchá na portu 3000.
Výstup:
Z výstupu,
- Jasně ukazuje, že byly načteny všechny id zaměstnance ve sbírce Zaměstnanci. Je to proto, že používáme MongoDB ovladač pro připojení k databázi a načtení všech záznamů Zaměstnance a následně použil „expres“ k zobrazení záznamů.
Zde je kód pro vaši referenci
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() {});
Poznámka: kurzor.každý může být zastaralý na základě vaší verze MongoDB Řidič. Můžete přidat //noinspection JSDeprecateSymbols před kurzor.each, abyste problém obešli. Případně můžete použít forEach. Níže je ukázkový kód pomocí 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() {});
Shrnutí
- Node.js se používá ve spojení s NoSQL databáze pro vytváření mnoha moderních webových aplikací. Některé z běžně používaných databází jsou MySQL a MongoDB.
- Jeden z běžných modulů používaných pro práci s MongoDB databáze je modul s názvem 'MongoDB.' Tento modul se instaluje prostřednictvím správce balíčků Node.
- S hodinkami MongoDB modulu, je možné dotazovat se na záznamy v kolekci a provádět běžné operace aktualizace, mazání a vkládání.
- Konečně jednou z moderních postupů je používat expresní rámec spolu s MongoDB poskytovat moderní aplikace. Framework Express může využívat data vrácená serverem MongoDB ovladač a podle toho zobrazí data uživateli na webové stránce.











