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

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

В

Вадим Пашаев

12/12/2021

логотип 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 Compass мы можем работать как с локальной БД, так и с облачными сервисами mlab.com и mongodb.com.