Учебное пособие по Node.js MongoDB с примерами

Большинство современных веб-приложений имеют какую-то систему хранения данных на сервере. Например, если вы возьмете приложение для интернет-покупок, такие данные, как цена товара, будут храниться в базе данных.

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

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

С течением времени базы данных NoSQL, такие как MongoDB и For MySQL стали довольно популярными как базы данных для хранения данных. Способность этих баз данных хранить любой тип контента и особенно в любом формате делает эти базы данных такими известными.

Node.js может работать как с MySQL, так и с MongoDB в качестве баз данных. Чтобы использовать любую из этих баз данных, вам необходимо загрузить и использовать необходимые модули с помощью менеджера пакетов Node.

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

С помощью этих модулей вы можете выполнить следующие действия:wing операции в Node.js

  1. Управление подключением pooling — здесь вы можете указать количество подключений к базе данных MySQL, которые должны поддерживаться и сохраняться Node.js.
  2. Создайте и закройте соединение с базой данных. В любом случае вы можете предоставить функцию обратного вызова, которую можно вызывать всякий раз, когда выполняются методы соединения «создать» и «закрыть».
  3. Могут выполняться запросы для получения данных из соответствующих баз данных для получения данных.
  4. С помощью этих модулей также можно выполнять манипуляции с данными, такие как вставка данных, удаление и обновление данных.

По остальным темам мы рассмотрим, как мы можем работать с базами данных MongoDB внутри Node.js.

Использование MongoDB и Node.js

Как обсуждалось в предыдущей теме, MongoDB — одна из самых популярных баз данных, используемых вместе с Node.js.

В этой главе мы увидим

Как мы можем установить соединения с базой данных MongoDB

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

Для целей этой главы давайте предположим, что у нас есть приведенные ниже данные MongoDB.

Имя базы данных: СотрудникDB.

Название коллекции: Сотрудник

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. Создание и закрытие соединения с базой данных MongoDB. В приведенном ниже фрагменте кода показано, как создать и закрыть соединение с базой данных MongoDB.

Использование MongoDB и Node.js

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

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

Если приведенный выше код выполнен правильно, строка «Подключено» будет записана в консоль, как показано ниже.

Использование MongoDB и Node.js

  1. Запрос данных в базе данных MongoDB – Используя драйвер MongoDB, мы также можем получать данные из базы данных MongoDB. В разделе ниже показано, как мы можем использовать драйвер для получения всех документов из нашей коллекции сотрудников. в нашей базе данных StaffDB. Это коллекция в нашей базе данных 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. На первом этапе мы создаем курсор (Курсор — это указатель, который используется для указания на различные записи, полученные из базы данных. Затем курсор используется для перебора различных записей в базе данных. Здесь мы определяем имя переменной, называемое курсором, которая будет использоваться для хранения указателя на записи, полученные из базы данных.), которая указывает на записи, полученные из коллекции MongoDb. У нас также есть возможность указать коллекцию «Сотрудник», из которой следует получать записи. Функция find() используется для указания того, что мы хотим получить все документы из коллекции MongoDB.
  2. Теперь мы проходим по нашему курсору и для каждого документа в курсоре мы собираемся выполнить функцию.
  3. Наша функция просто выведет содержимое каждого документа на консоль.

Заметка: - Также возможно получить определенную запись из базы данных. Это можно сделать, указав условие поиска в функции find(). Например, предположим, что вы просто хотите получить запись с именем сотрудника Guru99, тогда этот оператор можно записать следующим образом:

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

Если приведенный выше код выполнен успешно, произойдет следующее:wing вывод будет отображаться в вашей консоли.

Вывод:

Использование 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, чтобы вставить документ в коллекцию сотрудников.
  2. Мы указываем документ деtails того, что необходимо вставить в коллекцию сотрудников.

Если вы теперь проверите содержимое своей базы данных MongoDB, вы обнаружите запись с идентификатором сотрудника, равным 4, и именем сотрудника, равным «NewEmployee», вставленным в коллекцию сотрудников.

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

Чтобы проверить, что данные были правильно вставлены в базу данных, необходимо выполнить следующую команду:wing команды в MongoDB

  1. Используйте базу данных сотрудников
  2. db.Employee.find({Employeeid :4 })

Первый оператор гарантирует, что вы подключены к базе данныхСотрудникDb. Второй оператор ищет запись с идентификатором сотрудника 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. Указываем критерии поиска, какой документ необходимо обновить. В нашем случае мы хотим найти документ, имя которого имеет значение «NewEmployee».
  3. Затем мы хотим установить значение имени сотрудника документа с «NewEmployee» на «Mohan».

Если вы теперь проверите содержимое своей базы данных MongoDB, вы обнаружите запись с идентификатором сотрудника, равным 4, и именем сотрудника, равным «Мохан», обновленной в коллекции сотрудников.

Чтобы проверить правильность обновления данных в базе данных, необходимо выполнить следующую команду:wing команды в MongoDB

  1. Используйте базу данных сотрудников
  2. db.Employee.find({Employeeid :4 })

Первый оператор гарантирует, что вы подключены к базе данныхСотрудникDb. Второй оператор ищет запись с идентификатором сотрудника 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. Указываем критерии поиска, какой документ нужно удалить. В нашем случае мы хотим найти документ с именем сотрудника «Мохан» и удалить этот документ.

Если вы теперь проверите содержимое своей базы данных MongoDB, вы обнаружите запись с идентификатором сотрудника 4 и именем сотрудника «Мохан», удаленную из коллекции сотрудников.

Чтобы проверить правильность обновления данных в базе данных, необходимо выполнить следующую команду:wing команды в MongoDB

  1. Используйте базу данных сотрудников
  2. db.Employee.find()

Первый оператор гарантирует, что вы подключены к базе данныхСотрудникDb. Второй оператор ищет и отображает все записи в коллекции сотрудников. Здесь вы можете увидеть, удалена запись или нет.

Как создать экспресс-приложение Node с MongoDB для хранения и обслуживания контента

Создание приложения с использованием комбинации Express и MongoDB в настоящее время довольно распространено.

При работе с JavaScript веб-приложениях здесь обычно используется термин MEAN stack.

  • Термин «стек MEAN» относится к набору технологий на основе JavaScript, используемых для разработки веб-приложений.
  • MEAN — это аббревиатура MongoDB, ExpressJS, угловойJS, и Node.js.

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

Давайте посмотрим на простой пример того, как мы можем использовать «express» и «MongoDB» вместе. В нашем примере будет использоваться та же коллекция сотрудников из базы данных MongoDB.

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

При запуске страницы будут отображаться все идентификаторы сотрудников в коллекции «Сотрудники». Итак, давайте посмотрим фрагмент кода по разделам, которые позволят нам добиться этого.

Шаг 1) Определите все библиотеки, которые необходимо использовать в нашем приложении, в нашем случае это и MongoDB, и экспресс-библиотека.

Создайте приложение Node Express с помощью MongoDB

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

  1. Мы определяем нашу «экспресс-библиотеку», которая будет использоваться в нашем приложении.
  2. Мы определяем нашу библиотеку MongoDB, которая будет использоваться в нашем приложении для подключения к нашей базе данных MongoDB.
  3. Здесь мы определяем URL-адрес нашей базы данных для подключения.
  4. Наконец, мы определяем строку, которая будет использоваться для хранения нашей коллекции идентификаторов сотрудников, которые должны отображаться в браузере. later о.

Шаг 2) На этом этапе мы собираемся получить все записи из нашей коллекции «Сотрудники» и работать с ними соответствующим образом.

Создайте приложение Node Express с помощью MongoDB

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

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

Шаг 3) На этом этапе мы собираемся отправить наш вывод на веб-страницу и заставить наше приложение прослушивать определенный порт.

Создайте приложение Node Express с помощью MongoDB

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

  1. Здесь мы отправляем весь контент, созданный на предыдущем этапе, на нашу веб-страницу. Параметр «res» позволяет нам отправлять контент на нашу веб-страницу в качестве ответа.
  2. Мы заставляем все наше приложение Node.js прослушивать порт 3000.

Вывод:

Создайте приложение Node Express с помощью MongoDB

Из вывода,

  • Это ясно показывает, что все идентификаторы сотрудника в коллекции сотрудников были получены. Это связано с тем, что мы используем драйвер 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() {}); 

Примечание: курсор.each может быть устарел в зависимости от версии вашего драйвера MongoDB. Вы можете добавить //noinspection JSDeprecatedSymbols перед курсором.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, и соответствующим образом отображать данные пользователю на веб-странице.