Node.js MongoDB Tutoriál s příklady

Většinou všechny moderní webové aplikace mají na backendu nějaký systém ukládání dat. Pokud například vezmete případ webové nákupní aplikace, data, jako je cena položky, budou uložena v databázi.

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 si 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

  1. 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.
  2. 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“.
  3. Dotazy lze provádět za účelem získání dat z příslušných databází pro načtení dat.
  4. 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},
}
  1. 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

  1. 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.

Použití MongoDB a Node.js

Vysvětlení kódu:

  1. 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.
  2. 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.
  1. 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.
  2. Ve funkci zapisujeme do konzole řetězec „Connection created“ (Připojení navázáno), což znamená, že bylo vytvořeno úspěšné připojení.
  3. 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.

Použití MongoDB a Node.js

  1. 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.

Použití MongoDB a Node.js

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

    });
});

Vysvětlení kódu:

  1. 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.
  2. Nyní procházíme kurzorem a pro každý dokument v kurzoru provedeme funkci.
  3. 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 podmínky vyhledávání ve funkci find(). Předpokládejme například, že pokud jste jen chtěli získat záznam, který má jméno zaměstnance jako Guru99, pak lze toto prohlášení 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:

Použití MongoDB a Node.js

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.
  1. 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.

Použití MongoDB a Node.js

var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';

MongoClient.connect(url, function(err, db) {

    db.collection('Employee').insertOne({
        Employeeid: 4,
        EmployeeName: "NewEmployee"
    });
}); 

Vysvětlení kódu:

  1. Zde používáme metodu insertOne z MongoDB knihovny pro vložení dokumentu do kolekce Zaměstnanci.
  2. 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

  1. Použijte EmployeeDB
  2. 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.

  1. 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.

Použití MongoDB a Node.js

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

Vysvětlení kódu:

  1. Zde používáme metodu „updateOne“ z MongoDB knihovna, která se používá k aktualizaci dokumentu v kolekci mongoDB.
  2. 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“.
  3. 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

  1. Použijte EmployeeDB
  2. 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.

  1. 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.

Použití MongoDB a Node.js

var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';

MongoClient.connect(url, function(err, db) {

    db.collection('Employee').deleteOne(

        {
            "EmployeeName": "Mohan"
        }

    );
}); 

Vysvětlení kódu:

  1. Zde používáme metodu „deleteOne“ z MongoDB knihovna, která se používá k odstranění dokumentu v kolekci mongoDB.
  2. 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

  1. Použijte EmployeeDB
  2. 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.

Sestavte aplikaci Node Express pomocí MongoDB

Vysvětlení kódu:

  1. Definujeme naši „expresní“ knihovnu, která bude použita v naší aplikaci.
  2. Definujeme naše "MongoDB' knihovna, která bude použita v naší aplikaci pro připojení k naší MongoDB databáze.
  3. Zde definujeme URL naší databáze, ke které se chceme připojit.
  4. 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.

Sestavte aplikaci Node Express pomocí MongoDB

Vysvětlení kódu:

  1. 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.
  2. 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.
  3. 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.
  4. 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.

Sestavte aplikaci Node Express pomocí MongoDB

Vysvětlení kódu:

  1. 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ěď.
  2. Celá naše aplikace Node.js poslouchá na portu 3000.

Výstup:

Sestavte aplikaci Node Express pomocí MongoDB

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 si 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.