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

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

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

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

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

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

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

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

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

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

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

  • Термин MEAN-стек относится к набору JavaТехнологии на основе скриптов, используемые для разработки веб-приложений.
  • МЕАН — это аббревиатура от MongoDB, ЭкспрессJS, угловойJS, и Node.js.

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

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

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

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

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

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

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

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

Шаг 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 драйвер и соответствующим образом отображать данные пользователю на веб-странице.