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

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

Вадим Пашаев

Вадим Пашаев

5/9/2023

логотип MongoDB

Что же такое 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 CompassMongoDB Compass

MongoDB Compass

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

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

Получите лучший маркетинговый контент недели

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

Получите лучший маркетинговый контент недели

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

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

Заполните эту форму для получения бесплатной оценки вашей идеи или задачи.

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

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