Истории успеха наших клиентов — лучшие проекты
Вход/ Регистрация

Как подключить Node.js к базе данных MongoDB: инструкция

4698
10 минут чтения
Средний рейтинг статьи: 5

Во время разработки приложений на Node.js может возникнуть необходимость в хранении данных. Использовать в качестве хранилищ данных переменные приложения или файлы на хосте не всегда удобно. В этих случаях лучше рассмотреть вариант с подключением к приложению внешней базы данных.

Для интеграции с Node.js отлично подходит MongoDB. В этой СУБД данные представлены в JSON-формате, с которым удобно работать на JavaScript. В этом материале мы расскажем, как подключить базу данных MongoDB к своему приложению Node.js, и рассмотрим несколько распространенных запросов к БД.

Эта инструкция подойдет для Node.js версии 14 и выше и MongoDB версии 4.4 и выше.

Тестовая база данных

В качестве тестовой базы данных мы будем использовать базу testdb, в которой находится коллекция employees. В ней хранится информация о сотрудниках абстрактного предприятия: отдел работы, дата рождения, уровень заработной платы и тому подобная информация. Приложение Node.js будем подключать именно к этой базе данных, а работать будем с коллекцией employees.

Создание пользователя в MongoDB Compass

Создадим отдельного пользователя, под которым будем подключаться к базе данных. Присвоим этому пользователю роль администратора всех баз данных. В продакшене так делать не стоит — это негативно скажется на безопасности.

Откройте терминал MongoDB Shell и выполните следующий запрос:

    

Вывод :

    

Пользователь с логином «Timeweb» и паролем «cloud» будет использоваться для подключения к БД.

Настройка среды выполнения

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

    

DBaaS

Запустите свою базу данных в облаке и
оптимизируйте процессы DevOps и CI/CD.

Подключение

Основным объектом, через который мы будем осуществлять взаимодействие с базой данных MongoDB, является объект класса MongoClient. Импортируем этот класс:

    

И объявляем объект DBclient с помощью конструктора:

    

На вход конструктору класса подаётся URI, который содержит в себе информацию о пользователе, IP и порте сервера. Вот структура URI:

    

В случае с размещенной на локальном устройстве БД, URI имеет следующий вид:

    
  • Timeweb — имя пользователя;
  • cloud — пароль;
  • 27017 — порт;
  • DEFAULT — механизм авторизации.

Осуществим подключение к серверу с БД:

    

Вывод:

    

Любые взаимодействия с базой данных — это асинхронные операции. Поэтому вместе с ними необходимо использовать async и await. Рассмотрим несколько популярных операций.

Вставка новых документов

Вставка новых документов осуществляется выполнением запроса к БД с данными о документах в качестве аргумента.

Вставка одного документа

    

Вставка нескольких документов

    

Проверим общее количество документов в коллекции после вставок:

    

 Вывод:

    

Вывод документов

Для обращения к документам базы данных и самой базе данных используется такая конструкция:

    

Где:

  • MongoClienObject — объект класса MongoClient;
  • dbname — имя базы данных, к которой обращаемся;
  • collectionname — имя коллекции, к которой обращаемся;
  • operation — запрос к БД или коллекции, например, findOne;

Если запрос осуществляется непосредственно к БД, то collection('collectionname') не указываем.

Выведем все документы в коллекции employees:

    

 Вывод:

    

Обновление документов

Обновление документов выполняется аналогично предыдущим операциям. Выполним сначала обновление одного документа, а затем обновление нескольких.

Обновление одного документа

    

Вот результат до и после. С помощью этого скрипта мы изменили имя в документе.

Image2

Обновление нескольких документов

    

Вот результат работы:

Image1

Разверните MongoDB в облаке за пару минут

Cloud DB 1/1/8

447 ₽/мес

Процессор
1 x 3.3 ГГц
Память
1 ГБ
Диск NVMe
8 ГБ
Приватный IP
Есть
Резервные копии
Есть
Cloud DB 1/2/20

711 ₽/мес

Процессор
1 x 3.3 ГГц
Память
2 ГБ
Диск NVMe
20 ГБ
Приватный IP
Есть
Резервные копии
Есть
Таблица тарифов
Сравнение тарифов
Cloud DB 1/1/8
496
Cloud DB 1/2/20
790
Cloud DB 2/2/30
1160
Cloud DB 2/4/40
1580
Cloud DB 4/8/80
3160
Cloud DB 4/12/120
4240
Cloud DB 6/12/180
5460
Cloud DB 8/16/220
7040
Процессор1 x 3.3 ГГц1 x 3.3 ГГц2 x 3.3 ГГц2 x 3.3 ГГц4 x 3.3 ГГц4 x 3.3 ГГц6 x 3.3 ГГц8 x 3.3 ГГц
Память1 ГБ2 ГБ2 ГБ4 ГБ8 ГБ12 ГБ12 ГБ16 ГБ
Диск NVMe8 ГБ20 ГБ30 ГБ40 ГБ80 ГБ120 ГБ180 ГБ220 ГБ
Приватный IPЕстьЕстьЕстьЕстьЕстьЕстьЕстьЕсть
Резервные копииЕстьЕстьЕстьЕстьЕстьЕстьЕстьЕсть

Заключение

MongoDB — это отличный инструмент, особенно в связке с Node.js. В этом материале мы использовали локальную базу данных, но можно использовать и другие варианты размещения БД. Например, в облаке. В Timeweb Cloud можно арендовать облачную базу данных MongoDB и начать работать в кратчайшие сроки. 

4698
10 минут чтения
Средний рейтинг статьи: 5

Читайте также

Хотите внести свой вклад?
Участвуйте в нашей контент-программе за
вознаграждение или запросите нужную вам инструкцию
img-server