Node.js MongoDB Підручник із прикладами

Переважно всі сучасні веб-додатки мають певну систему зберігання даних на сервері. Наприклад, якщо взяти програму для веб-покупок, такі дані, як ціна товару, зберігатимуться в базі даних.

Фреймворк Node js може працювати як з реляційними базами даних (такими як Oracle і MS SQL Server) і нереляційних баз даних (таких як MongoDB). У цьому підручнику ми побачимо, як можна використовувати бази даних із додатків Node js.

Бази даних Node.js і NoSQL

Протягом багатьох років база даних NoSQL, наприклад MongoDB і для MySQL стали досить популярними як бази даних для зберігання даних. Здатність цих баз даних зберігати будь-який тип вмісту, зокрема в будь-якому типі формату, робить ці бази даних такими відомими.

Node.js має можливість працювати з обома MySQL та MongoDB як бази даних. Щоб використовувати будь-яку з цих баз даних, вам потрібно завантажити та використовувати необхідні модулі за допомогою менеджера пакетів Node.

для MySQL, необхідний модуль називається «mysql» і для використання MongoDB необхідним модулем для встановлення є «Mongoose».

За допомогою цих модулів ви можете виконувати такі операції в Node.js

  1. Керувати пулом з’єднань – тут можна вказати кількість MySQL підключення до бази даних, які має підтримувати та зберігати Node.js.
  2. Створення та закриття підключення до бази даних. У будь-якому випадку ви можете надати функцію зворотного виклику, яку можна викликати щоразу, коли виконуються методи підключення «create» і «close».
  3. Запити можна виконувати для отримання даних із відповідних баз даних для отримання даних.
  4. Маніпуляції з даними, такі як вставлення даних, видалення та оновлення даних, також можна досягти за допомогою цих модулів.

Для решти тем ми розглянемо, як ми можемо працювати MongoDB бази даних всередині Node.js.

використання MongoDB і Node.js

Як обговорювалося в попередній темі, MongoDB є однією з найпопулярніших баз даних, що використовується разом із Node.js.

У цьому розділі ми побачимо

Як ми можемо встановити зв'язки з a MongoDB база даних

Як ми можемо виконувати звичайні операції читання даних із бази даних, а також вставлення, видалення й оновлення записів у MongoDB бази даних.

Для цілей цієї глави припустімо, що ми маємо наведене нижче MongoDB дані на місці.

Ім'я бази даних: EmployeeDB

Назва колекції: Співробітник

Documents
{
	{Employeeid : 1, Employee Name : Guru99},
	{Employeeid : 2, Employee Name : Joe},
	{Employeeid : 3, Employee Name : Martin},
}
  1. Встановлення модулів NPM

Вам потрібен драйвер для доступу до Mongo з програми Node. Доступно багато драйверів Mongo, але MongoDB входить до числа найпопулярніших. Щоб встановити MongoDB модуля, виконайте наведену нижче команду

npm встановити mongodb

  1. Створення та закриття підключення до a MongoDB бази даних. Наведений нижче фрагмент коду показує, як створити та закрити підключення до a MongoDB бази даних.

використання MongoDB і Node.js

Пояснення коду:

  1. Перший крок — включити модуль mongoose, що робиться за допомогою функції require. Коли цей модуль буде встановлено, ми зможемо використовувати необхідні функції, доступні в цьому модулі, для створення з’єднань із базою даних.
  2. Далі ми вказуємо наш рядок підключення до бази даних. У рядку підключення є 3 ключові значення, які передаються.
  • Перший — «mongodb», який вказує, що ми підключаємося до бази даних mongoDB.
  • Далі — «localhost», що означає, що ми підключаємось до бази даних на локальній машині.
  • Далі йде «EmployeeDB», це назва бази даних, визначена в нашому MongoDB бази даних.
  1. Наступним кроком буде підключення до нашої бази даних. Функція підключення приймає нашу URL-адресу та має можливість вказати функцію зворотного виклику. Він буде викликаний, коли буде відкрито підключення до бази даних. Це дає нам можливість дізнатися, чи було підключення до бази даних успішним чи ні.
  2. У функції ми пишемо на консоль рядок «З’єднання встановлено», щоб вказати, що з’єднання було успішно створено.
  3. Нарешті, ми закриваємо з’єднання за допомогою оператора db.close.

Якщо наведений вище код виконано належним чином, рядок «Connected» буде записано на консоль, як показано нижче.

використання MongoDB і Node.js

  1. Запит даних у a MongoDB база даних – Використання MongoDB драйвер ми також можемо отримати дані з MongoDB База даних. У розділі нижче буде показано, як ми можемо використовувати драйвер для отримання всіх документів із нашої колекції Employee у нашій базі даних EmployeeDB. Це колекція в нашому MongoDB база даних, яка містить усі документи, що стосуються працівників. Кожен документ має ідентифікатор об’єкта, ім’я працівника та ідентифікатор працівника для визначення значень документа.

використання MongoDB і 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);

    });
});

Пояснення коду:

  1. На першому кроці ми створюємо курсор (Курсор — це вказівник, який використовується для вказівки на різні записи, отримані з бази даних. Потім курсор використовується для перебору різних записів у базі даних. Тут ми визначаємо ім'я змінної під назвою cursor, яка буде використовуватися для зберігання покажчика на записи, отримані з бази даних), яка вказує на записи, отримані з колекції MongoDb. Ми також маємо можливість вказати колекцію «Співробітник», з якої потрібно отримати записи. Функція find() використовується, щоб вказати, що ми хочемо отримати всі документи з MongoDB collection.
  2. Зараз ми виконуємо ітерацію по нашому курсору, і для кожного документа в курсорі ми збираємося виконати функцію.
  3. Наша функція просто виводить вміст кожного документа на консоль.

Примітка: - Також можна отримати певний запис із бази даних. Це можна зробити, вказавши умову пошуку у функції find(). Наприклад, припустімо, що ви просто хочете отримати запис із ім’ям співробітника Guru99, тоді цей оператор можна записати так

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

Якщо наведений вище код виконано успішно, у вашій консолі буде показано наступний вихід.

вихід:

використання MongoDB і Node.js

З виходу,

  • Ви зможете чітко бачити, що всі документи з колекції вилучено. Це можливо за допомогою методу find() підключення mongoDB (db) і повторення всіх документів за допомогою курсору.
  1. Вставлення документів у колекцію – Документи можна вставляти в колекцію за допомогою методу insertOne, наданого в MongoDB бібліотека. Наведений нижче фрагмент коду показує, як ми можемо вставити документ у колекцію mongoDB.

використання MongoDB і 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"
    });
}); 

Пояснення коду:

  1. Тут ми використовуємо метод insertOne з MongoDB бібліотеку, щоб вставити документ у колекцію Employee.
  2. Ми вказуємо деталі документа про те, що потрібно вставити в колекцію співробітників.

Якщо ви зараз перевірите вміст свого MongoDB бази даних, ви знайдете запис із Employeeid 4 і EmployeeName «NewEmployee», вставлений у колекцію Employee.

Примітка: Консоль не відображатиме жодних виводів, оскільки запис вставляється в базу даних, і тут не можна відобразити виведення.

Щоб переконатися, що дані правильно вставлено в базу даних, вам потрібно виконати наступні команди MongoDB

  1. Використовуйте EmployeeDB
  2. db.Employee.find({Employeeid :4 })

Перший оператор гарантує, що ви підключені до бази даних EmployeeDb. Другий оператор шукає запис із ідентифікатором працівника 4.

  1. Оновлення документів у колекції – Документи можна оновлювати в колекції за допомогою методу updateOne, наданого в MongoDB бібліотека. Наведений нижче фрагмент коду показує, як оновити документ у колекції mongoDB.

використання MongoDB і 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"
        }
    });
}); 

Пояснення коду:

  1. Тут ми використовуємо метод “updateOne” з MongoDB бібліотека, яка використовується для оновлення документа в колекції mongoDB.
  2. Ми вказуємо критерії пошуку, який документ потрібно оновити. У нашому випадку ми хочемо знайти документ, який має EmployeeName «NewEmployee».
  3. Потім ми хочемо встановити значення EmployeeName документа з «NewEmployee» на «Mohan».

Якщо ви зараз перевірите вміст свого MongoDB бази даних, ви знайдете запис із Employeeid 4 і EmployeeName «Мохан», оновленим у колекції Employee.

Щоб перевірити, чи належним чином оновлено дані в базі даних, потрібно виконати наступні команди MongoDB

  1. Використовуйте EmployeeDB
  2. db.Employee.find({Employeeid :4 })

Перший оператор гарантує, що ви підключені до бази даних EmployeeDb. Другий оператор шукає запис із ідентифікатором працівника 4.

  1. Видалення документів у колекції – Документи можна видаляти в колекції за допомогою методу «deleteOne», наданого в MongoDB бібліотека. Наведений нижче фрагмент коду показує, як видалити документ у колекції mongoDB.

використання MongoDB і Node.js

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

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

    db.collection('Employee').deleteOne(

        {
            "EmployeeName": "Mohan"
        }

    );
}); 

Пояснення коду:

  1. Тут ми використовуємо метод “deleteOne” з MongoDB бібліотека, яка використовується для видалення документа в колекції mongoDB.
  2. Ми вказуємо критерії пошуку, який документ потрібно видалити. У нашому випадку ми хочемо знайти документ із EmployeeName «Mohan» і видалити цей документ.

Якщо ви зараз перевірите вміст свого MongoDB бази даних, ви знайдете запис із Employeeid 4 і EmployeeName «Мохан», видаленим із колекції Employee.

Щоб перевірити, чи належним чином оновлено дані в базі даних, потрібно виконати наступні команди MongoDB

  1. Використовуйте EmployeeDB
  2. db.Employee.find()

Перший оператор гарантує, що ви підключені до бази даних EmployeeDb. Другий оператор шукає та відображає всі записи в колекції співробітників. Тут ви можете побачити, видалено запис чи ні.

Як створити додаток Node Express за допомогою MongoDB зберігати та обслуговувати вміст

Створення програми за допомогою комбінації експрес- і MongoDB є досить поширеним у наш час.

При роботі з JavaScript веб-додатків, як правило, тут буде використано термін MEAN стек.

  • Термін стек MEAN відноситься до колекції JavaТехнології на основі сценаріїв, які використовуються для розробки веб-додатків.
  • MEAN - це абревіатура від MongoDB, ExpressJS, AngularJS, і Node.js.

Отже, завжди корисно розуміти, як Node.js і MongoDB працювати разом, щоб надавати програми, які взаємодіють із серверними базами даних.

Давайте розглянемо простий приклад того, як ми можемо використовувати «express» і «MongoDB” разом. У нашому прикладі буде використано ту саму колекцію Employee у MongoDB База даних EmployeeDB.

Тепер ми включимо Express для відображення даних на нашій веб-сторінці за запитом користувача. Коли наша програма працює на Node.js, може знадобитися переглянути URL-адресу http://localhost:3000/Employeeid.

Після запуску сторінки відображатимуться всі ідентифікатори співробітників у колекції Employee. Отже, давайте розглянемо фрагмент коду в розділах, які дозволять нам досягти цього.

Крок 1) Визначте всі бібліотеки, які потрібно використовувати в нашій програмі, яка в нашому випадку є одночасно MongoDB та експрес бібліотека.

Створіть додаток Node Express за допомогою MongoDB

Пояснення коду:

  1. Ми визначаємо нашу «швидку» бібліотеку, яка буде використовуватися в нашій програмі.
  2. Ми визначаємо нашMongoDB' бібліотека, яка буде використовуватися в нашій програмі для підключення до нашого MongoDB бази даних.
  3. Тут ми визначаємо URL нашої бази даних для підключення.
  4. Нарешті, ми визначаємо рядок, який буде використовуватися для зберігання нашої колекції ідентифікаторів співробітників, які пізніше потрібно буде відобразити у браузері.

Крок 2) На цьому кроці ми збираємося отримати всі записи в нашій колекції «Працівник» і працювати з ними відповідно.

Створіть додаток Node Express за допомогою MongoDB

Пояснення коду:

  1. Ми створюємо маршрут до нашої програми під назвою Employeeid. Тому кожного разу, коли хтось переглядає сторінку http://localhost:3000/Employeeid нашої програми, буде виконано фрагмент коду, визначений для цього маршруту.
  2. Тут ми отримуємо всі записи в нашій колекції Employee за допомогою команди db.collection('Employee').find(). Потім ми присвоюємо цю колекцію змінній під назвою cursor. Використовуючи цю змінну курсора, ми зможемо переглядати всі записи колекції.
  3. Тепер ми використовуємо функцію cursor.each() для навігації по всіх записах нашої колекції. Для кожного запису ми визначимо фрагмент коду щодо того, що робити під час доступу до кожного запису.
  4. Нарешті ми бачимо, що якщо повернутий запис не є нульовим, ми беремо працівника за допомогою команди «item.Employeeid». Решта коду призначена лише для створення правильного HTML-коду, який дозволить належним чином відображати наші результати у браузері.

Крок 3) На цьому кроці ми збираємося надіслати наш вихід на веб-сторінку та змусити нашу програму слухати певний порт.

Створіть додаток Node Express за допомогою MongoDB

Пояснення коду:

  1. Тут ми надсилаємо весь вміст, створений на попередньому кроці, на нашу веб-сторінку. Параметр «res» дозволяє нам надсилати вміст на нашу веб-сторінку як відповідь.
  2. Ми змушуємо весь наш додаток Node.js слухати порт 3000.

вихід:

Створіть додаток Node Express за допомогою MongoDB

З виходу,

  • Це чітко показує, що всі ідентифікатори співробітників у колекції Employee були отримані. Це тому, що ми використовуємо MongoDB драйвер для підключення до бази даних і отримання всіх записів про співробітників, а потім використовував «експрес» для відображення записів.

Ось код для довідки

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

Примітка: cursor.each може бути застарілим на основі вашої версії MongoDB водій. Ви можете додати //noinspection JSDeprecatedSymbols перед cursor.each, щоб уникнути проблеми. Крім того, ви можете використовувати forEach. Нижче наведено приклад коду з використанням 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() {});

Підсумки

  • Node.js використовується в поєднанні з NoSQL бази даних для створення багатьох сучасних веб-додатків. Деякі з поширених баз даних, які використовуються MySQL та MongoDB.
  • Один із поширених модулів для роботи MongoDB бази даних — це модуль під назвою 'MongoDB.' Цей модуль встановлюється через менеджер пакетів Node.
  • З MongoDB модуль, можна запитувати записи в колекції та виконувати звичайні операції оновлення, видалення та вставки.
  • Нарешті, однією із сучасних практик є використання експрес-фреймворку разом із MongoDB для доставки сучасних програм. Фреймворк Express може використовувати дані, які повертає MongoDB драйвер і відповідно відображати дані користувачеві на веб-сторінці.