Node.js MongoDB Учебник с примерами
Практически все современные веб-приложения имеют какую-либо систему хранения данных на бэкэнде. Например, если взять в качестве примера интернет-магазин.ping В приложении такие данные, как цена товара, будут храниться в базе данных.
Фреймворк 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.
- Управление пулом соединений. Здесь вы можете указать количество MySQL подключения к базе данных, которые должны поддерживаться и сохраняться Node.js.
- Создайте и закройте соединение с базой данных. В любом случае вы можете предоставить функцию обратного вызова, которую можно вызывать всякий раз, когда выполняются методы соединения «создать» и «закрыть».
- Могут выполняться запросы для получения данных из соответствующих баз данных для получения данных.
- С помощью этих модулей также можно выполнять манипуляции с данными, такие как вставка данных, удаление и обновление данных.
Что касается остальных тем, мы рассмотрим, как мы можем работать с 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},
}
- Установка модулей NPM
Вам нужен драйвер для доступа к Mongo из приложения Node. Доступно несколько драйверов Mongo, но MongoDB входит в число самых популярных. Чтобы установить MongoDB модуль, выполните команду ниже
npm установить mongodb
- Создание и закрытие соединения с MongoDB . В приведенном ниже фрагменте кода показано, как создать и закрыть соединение с MongoDB .
Code Объяснение:
- Первым шагом является подключение модуля mongoose, что выполняется с помощью функции require. Как только этот модуль будет установлен, мы сможем использовать необходимые функции, доступные в этом модуле, для создания подключений к базе данных.
- Далее мы указываем нашу строку подключения к базе данных. В строке подключения передаются три ключевых значения.
- Первый — «mongodb», который указывает, что мы подключаемся к базе данных mongoDB.
- Следующий — «localhost», что означает, что мы подключаемся к базе данных на локальном компьютере.
- Следующим идет «EmployeeDB» — имя базы данных, определенной в нашем MongoDB .
- Следующий шаг — это фактическое подключение к нашей базе данных. Функция подключения принимает наши данные. URL и позволяет указать функцию обратного вызова. Она будет вызвана при установлении соединения с базой данных. Это дает нам возможность узнать, было ли соединение с базой данных успешным или нет.
- В функции мы выводим в консоль строку «Соединение установлено», чтобы указать, что успешное соединение создано.
- Наконец, мы закрываем соединение с помощью оператора db.close.
Если приведенный выше код выполнен правильно, строка «Подключено» будет записана в консоль, как показано ниже.
- Запрос данных в MongoDB база данных - С использованием MongoDB драйвер, мы также можем получить данные из MongoDB база данных. В разделе ниже показано, как мы можем использовать драйвер для получения всех документов из нашей коллекции сотрудников. в нашей базе данных StaffDB. Это коллекция в нашем MongoDB База данных, содержащая все документы, относящиеся к сотрудникам. Каждый документ имеет идентификатор объекта, имя сотрудника и идентификатор сотрудника для определения значений документа.
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 Объяснение:
- На первом этапе мы создаем курсор (курсор — это указатель, который используется для указания на различные записи, извлеченные из базы данных. Затем курсор используется для итерации по различным записям в базе данных. Здесь мы определяем имя переменной с именем cursor, которое будет использоваться для хранения указателя на записи, извлеченные из базы данных.), который указывает на записи, извлеченные из коллекции MongoDb. У нас также есть возможность указать коллекцию «Сотрудник», из которой следует извлекать записи. Функция find() используется для указания того, что мы хотим извлечь все документы из MongoDB коллекция.
- Теперь мы проходим по нашему курсору и для каждого документа в курсоре мы собираемся выполнить функцию.
- Наша функция просто выведет содержимое каждого документа на консоль.
Заметка: - Также можно получить конкретную запись из базы данных. Это можно сделать, указав условие поиска в функции find(). Например, предположим, что вам нужно получить только запись, содержащую имя сотрудника. Guru99, тогда это утверждение можно записать следующим образом.
var cursor=db.collection('Employee').find({EmployeeName: "guru99"})
Если приведенный выше код будет выполнен успешно, в вашей консоли отобразится следующий вывод.
Выход:
Из вывода,
- Вы сможете ясно видеть, что все документы из коллекции извлечены. Это возможно с помощью метода find() соединения mongoDB (db) и перебора всех документов с помощью курсора.
- Вставка документов в коллекцию – Документы можно вставлять в коллекцию с помощью метода InsertOne, предоставляемого MongoDB библиотека. Приведенный ниже фрагмент кода показывает, как можно вставить документ в коллекцию 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 Объяснение:
- Здесь мы используем метод InsertOne из MongoDB библиотека для вставки документа в коллекцию сотрудников.
- Мы указываем детали документа о том, что необходимо вставить в коллекцию «Сотрудник».
Если вы сейчас проверите содержимое вашего MongoDB В базе данных вы найдете запись с идентификатором сотрудника, равным 4, и именем сотрудника, равным «NewEmployee», вставленную в коллекцию сотрудников.
Примечание: Консоль не будет отображать никаких выводов, поскольку запись вставляется в базу данных, и вывод здесь невозможен.
Чтобы проверить, что данные были правильно вставлены в базу данных, вам необходимо выполнить следующие команды MongoDB
- Используйте базу данных сотрудников
- db.Employee.find({Employeeid :4 })
Первый оператор гарантирует, что вы подключены к базе данныхСотрудникDb. Второй оператор ищет запись с идентификатором сотрудника 4.
- Обновление документов в коллекции – Документы в коллекции можно обновлять с помощью метода updateOne, предоставляемого MongoDB библиотека. Приведенный ниже фрагмент кода показывает, как обновить документ в коллекции 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 Объяснение:
- Здесь мы используем метод updateOne из MongoDB библиотека, которая используется для обновления документа в коллекции mongoDB.
- Указываем критерии поиска, какой документ необходимо обновить. В нашем случае мы хотим найти документ, имя которого имеет значение «NewEmployee».
- Затем мы хотим установить значение имени сотрудника документа с «NewEmployee» на «Mohan».
Если вы сейчас проверите содержимое вашего MongoDB В базе данных вы найдете запись с идентификатором сотрудника 4 и именем сотрудника «Мохан», обновленную в коллекции сотрудников.
Чтобы проверить, что данные в базе данных были обновлены правильно, необходимо выполнить следующие команды MongoDB
- Используйте базу данных сотрудников
- db.Employee.find({Employeeid :4 })
Первый оператор гарантирует, что вы подключены к базе данныхСотрудникDb. Второй оператор ищет запись с идентификатором сотрудника 4.
- Удаление документов в коллекции – Документы в коллекции можно удалить с помощью метода «deleteOne», предоставляемого MongoDB библиотека. Приведенный ниже фрагмент кода показывает, как удалить документ в коллекции mongoDB.
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';
MongoClient.connect(url, function(err, db) {
db.collection('Employee').deleteOne(
{
"EmployeeName": "Mohan"
}
);
});
Code Объяснение:
- Здесь мы используем метод «deleteOne» из MongoDB библиотека, которая используется для удаления документа в коллекции mongoDB.
- Указываем критерии поиска, какой документ нужно удалить. В нашем случае мы хотим найти документ с именем сотрудника «Мохан» и удалить этот документ.
Если вы сейчас проверите содержимое вашего MongoDB В базе данных вы найдете запись с идентификатором сотрудника 4 и именем сотрудника «Мохан», удаленную из коллекции сотрудников.
Чтобы проверить, что данные в базе данных были обновлены правильно, необходимо выполнить следующие команды MongoDB
- Используйте базу данных сотрудников
- 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 и экспресс-библиотека.
Code Объяснение:
- Мы определяем нашу «экспресс-библиотеку», которая будет использоваться в нашем приложении.
- Мы определяем нашиMongoDB'библиотека, которая будет использоваться в нашем приложении для подключения к нашему MongoDB .
- Здесь мы даём определение URL к нашей базе данных для подключения.
- Наконец, мы определяем строку, которая будет использоваться для хранения нашей коллекции идентификаторов сотрудников, которые позже необходимо отобразить в браузере.
Шаг 2) На этом этапе мы собираемся получить все записи из нашей коллекции «Сотрудники» и работать с ними соответствующим образом.
Code Объяснение:
- Мы создаем маршрут к нашему приложению под названием «Employeeid». Поэтому всякий раз, когда кто-либо просматривает http://localhost:3000/Employeeid нашего приложения будет выполнен фрагмент кода, определенный для этого маршрута.
- Здесь мы получаем все записи из нашей коллекции «Сотрудник» с помощью команды db.collection('Employee').find(). Затем мы присваиваем эту коллекцию переменной с именем курсор. Используя эту курсорную переменную, мы сможем просмотреть все записи коллекции.
- Теперь мы используем функцию курсора.each() для навигации по всем записям нашей коллекции. Для каждой записи мы собираемся определить фрагмент кода, описывающий, что делать при доступе к каждой записи.
- Наконец, мы видим, что если возвращаемая запись не равна нулю, то мы берем сотрудника с помощью команды «item.Employeeid». Остальная часть кода предназначена только для создания правильного HTML-кода, который позволит нашим результатам правильно отображаться в браузере.
Шаг 3) На этом этапе мы собираемся отправить наш вывод на веб-страницу и заставить наше приложение прослушивать определенный порт.
Code Объяснение:
- Здесь мы отправляем весь контент, созданный на предыдущем этапе, на нашу веб-страницу. Параметр «res» позволяет нам отправлять контент на нашу веб-страницу в качестве ответа.
- Мы заставляем все наше приложение Node.js прослушивать порт 3000.
Выход:
Из вывода,
- Это ясно показывает, что все идентификаторы сотрудника в коллекции сотрудников были получены. Это потому, что мы используем 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 драйвер и соответствующим образом отображать данные пользователю на веб-странице.











