MongoDB для NodeJS туториал: Часть 1 - Установка MongoDB и соединение с базой данных

370

4/10/2021

MongoDB - NoSQL БД с открытым исходным кодом, использующая JSON-документы для хранения данных без описания схемы таблиц

Вадим Пашаев

Вадим Пашаев

Инженер, веб-разработчик, путешественник

логотип MongoDB
Регистрация товарных знаков
Craftum - создайте сайт за 15 минут
Домены, хостинг от reg.ru

Что же такое MongoDB и NoSQL базы данных?

Согласно википедии:

MongoDB - это документоориентированная система управления базами данных с открытым исходным кодом, не требующая описания схемы таблиц. Классифицирована как NoSQL, использует JSON-подобные документы и схему базы данных...

Для справки

Что значит документоориентированная или NoSQL?

Документированная БД хранит данные в виде документов и обычно реализуется с помощью подхода NoSQL. Эти документы имеют структуру дерева. Структура начинается с корневого узла и может содержать несколько внутренних и листовых узлов. Листовые узлы содержат данные, которые при добавлении документа заносятся в индексы, что позволяет даже при достаточно сложной структуре данных находить место искомых данных.

Документы могут быть организованы (сгруппированы) в коллекции. Аналог таблиц в реляционных БД. Но коллекции могут хранить другие коллекции. Хотя документы в коллекции могут быть с произвольным содержимым, принято использовать в коллекции документы со схожей структурой.

Документооиентированные БД применяются в система управления содержимым, издательском деле, документальном поиске и т.п. К СУБД данного типа относятся CouchDB, Couchbase, MongoDB, Berkeley DB.

В данной статье мы рассмотрим возможности NoSQL БД на примере MongoDB.

Преимущества MongoDB

MongoDB - как раз относится к документоориентированным базам данных, которая хранит данные в виде JSON-подобных документов.

JSON-документы

{
  "_id": "5cf0029caff5056591b0ce7d",
  "firstname": "Денис",
  "lastname": "Иванов",
  "address": {
  "street": "Ленина ул.",
  "city": "Ижевск",
  "region": "Удмуртская республика",
  "zip": "426000",
  "hobbies": ["серфинг", "кодинг"]
}

Такие JSON-подобные документы поддерживают массивы и вложенные объекты. И позволяют строить гибкие и динамические схемы.

Мощный язык запросов

Богатый и выразительный язык запросов, который позволяет фильтровать и сортировать по любому полю, независимо от того, насколько вложенным оно может быть в документе.

db.users.find({ "address.zip" : "90404" })
{ "_id": "5cf0029caff5056591b0ce7d", "firstname": "Jane", "lastname": "Wu", "address":{}}
{ "_id": "507f1f77bcf86cd799439011", "firstname": "Jon", "lastname": "Davis", "address":{}}
{ "_id": "5349b4ddd2781d08c09890f3", "firstname": "Jim", "lastname": "White", "address":{}}
{ "_id": "5bf142459b72e12b2b1b2cd", "firstname": "Jeff", "lastname": "Taylor", "address":{}}
{ "_id": "5cf003283b23d04a40d5f88a", "firstname": "Jerry", "lastname": "Miller", "address":{}}
{ "_id": "5bf142459b72e12b2b1b2cd", "firstname": "Jai", "lastname": "Williams", "address":{}}
{ "_id": "5cf0036deaa1742dd225ea35", "firstname": "Jess", "lastname": "Johnson", "address":{}}
{ "_id": "54495ad94c934721ede76d90", "firstname": "Jill", "lastname": "Brown", "address":{}}
{ "_id": "566eb3c704c7b31facbb0007", "firstname": "Janet", "lastname": "Jones", "address":{}}
{ "_id": "5a999cc461d36489a27f2563", "firstname": "Jan", "lastname": "Smith", "address":{}}

Предоставляет всю мощь реляционных БД плюс немного больше!

session.start_transaction()
order = { line_items : [ { item : 5, quantity: 6 } ] }
db.orders.insertOne( order, session=session );
for x in order.line_items:
  db.inventory.update(
  { _id  : x.item } ,
  { $inc : { number : -1 * x.quantity } },
  session=session
)
session.commit_transaction()

Что нужно чтобы начать с ней работать?

Для того, чтобы начать работать с этой базой данных есть два пути:

  • Облачные сервисы (это например Mlab или MongoDB Atlas);
  • Локальная установка.

Если нет желания запариваться с установкой, то следуйте первому пути. Необходимо зарегистрироваться и далее создать базу данных с помощью внутреннего визарда. Который все сделает за вас и даст вам ссылку на БД, с которой мы и будем работать.

Но мы пойдем другим путем и запустим сервис mongoDB на локальной машине c Windows 10.

Для этого необходимо с официального сайта скачать два установочника, перед этим тоже зарегистрировавшись.

  • MongoDB Server (для Windows);
  • MongoDB Compass Community Edition.

Первое - это собственно сама база данных с драйверами для Windows. А второе - это GUI для более удобной работы с БД.

Процесс установки довольно простой и после установки двух пакетов. Необходимо запустить MongoDB Compass найдя его в панели приложений Windows 10.

После запуска мы увидим следущее окно:

MongoDB Compass
MongoDB Compass

В MongoDB Compass мы можем работать как с локальной БД, так и с облачными сервисами mlab.com и mongodb.com.

Подписаться на рассылку

Получите лучшие новости по веб-разработке и AI

Подписаться на рассылку

Получите лучшие новости по веб-разработке и AI

Оценка проекта

Хотите быструю оценку Вашего проекта?

Василий Иванов
Максим Насенников
Виктория Мальцева
Vadim Pashaev

Заполните форму справа и наша команда экспертов поможет найти для Вас оптимальное решение вашей идеи или задачи

Есть интересная идея?

И вы очень хотите ее реализовать, пишите нам и получите подробное коммерческое предложение и быструю реализацию