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

698

10.04.2021

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

Вадим Пашаев

Вадим Пашаев

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

логотип 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