Базы данных

Изучаем MongoDB: быстрый старт

Spread the love

Перевод статьи: ParasLearn MongoDB: Getting Started

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

Давайте начнем…

Содержание

  • Что такое MongoDB
  • Предварительные условия
  • Установка
  • Начало работы
  • Основы

Что такое MongoDB?

MongoDB — это NoSQL база данных. В чем отличие от традиционных баз данных на основе SQL? Во-первых, у нее нет предопределенной структуры, такой как SQL таблицы. Не нужно заранее определять, как будет выглядеть ваши таблицы. Во-вторых, она не использует термин таблицы вообще, вместо этого используется термин документы, которые по сути являются подобные JSON структуры, и вам решать, нужна вам схема или нет.

RDBMS: Relational Databases — Реляционные базы данных

NoSQL : Not SQL или Non Relational Databases or Distributed Databases — Нереляционные базы данных или распределенные базы данных

Преимущества NoSQL:

  • Динамическая схема для неструктурированных данных. Каждый документ может иметь уникальную структуру.
  • Определять и придерживаться схемы необязательно.
  • NoSQL базы данных легко масштабируются по горизонтали
  • Используется объекты с парами ключ-значение. Если вы знакомы с объектами JSON или языком javascript, вам будет легче понять и использовать NoSQL.
  • NoSQL лучше всего подходит для хранения иерархических данных.

Предварительные условия

Я использую следующую версию ОС и mongodb. Разница в версиях не сильно повлияет на процесс обучения, но наверно это следует оговорить, прежде чем продолжить.

  • Операционная система: Ubuntu 18.04 LTS
  • Версия Mongodb: 4.2.9

Установка

Установка довольно проста, и подробно описана в документации mongodb. Более подробно о ней можно почитать тут. Если во время установки вам будет предложено установить mongodb compass, установите его. Это приложение с графическим интерфейсом, которое поможет вам интуитивно визуализировать ваши базы данных.

Две важные вещи, которые вы получите после установки:

  1. mongod : сервер mongodb
  2. mongo : оболочка mongo, в которой мы можем вводить команды и работать с БД

Начало работы

В Linux запустить mongodb так же просто, как ввести несколько команд в терминале. Так что давай сделаем это:

Запуск mongod сервер

# старт сервера
sudo systemctl start mongod

# альтернативный способ запуска сервера
sudo service mongod start

# проверка запущен ли сервер
sudo systemctl status mongod

# альтернативный путь проверки
sudo service mongod status

# остановка сервера
sudo systemctl stop mongod

# альтернативный путь остановки
sudo service mongod stop

После запуска сервера мы можем подключить оболочку mongo к запущенному экземпляру. Чтобы получить доступ к оболочке mongo, используйте следующую команду:

mongo

Да, это так же просто, как набрать mongo и нажать Enter.

Чтобы очистить терминал, либо введите cls в оболочке и нажмите Enter, либо нажмите ctrl + L.

Чтобы выйти из оболочки, введите exit и нажмите Enter.

Основы

Прежде чем двигаться дальше, давайте обсудим некоторые важные вещи, которые нам нужно знать, чтобы лучше понимать MongoDB.

Database

В mongodb у вас может быть несколько баз данных на одном сервере mongodb для коллективного хранения данных. Например. Если вы работаете над школьным приложением, вы должны создать школьную базу данных, в которой находятся все ваши коллекции (аналогичные таблице в sql). Эта база данных может содержать коллекцию студентов, коллекцию учителей и т. д.

Полезная команда, которую нужно знать при работе с базами данных:

> show dbs

Эта команда покажет вам все доступные базы данных, которые есть на вашем сервере mongo. А чтобы переключаться между базами данных, вы можете просто ввести:

> use <database name>

Коллекции

Термин коллекция похож на термин таблица в SQL БД. В коллекции хранятся все ваши записи о сущностях которые вам нужно сохранить. Например вы можете создать коллекцию студентов, в которой вы можете хранить записи всех студентов. В этих записях вы можете указать имя ученика, возраст, класс, предметы, оценки и т. д.

Коллекции содержат несколько документов в одном месте.

Подробнее о коллекциях мы поговорим в следующих постах.

Вот некоторые полезные команды, которые следует знать для работы с коллекциями: (переключитесь на выбранную базу данных с помощью use <database name>, чтобы использовать эти команды)

# показать все коллекции в БД
> show collections

# использовать выбранную коллекцию
> db.<collection name>.find()

Документы

Документы — это основные записи, содержащие вашу информацию в формате JSON.

{
   "name": "Ash Ketchum",
   "age": 20,
   "subjects": ["Math", "Science", "History", "English"],
   "standard": 8
}

Создать документ так же просто, как создать объект в javascript. Туда вы можете записывать любые значения. А так же включать документ внутрь документов. У вас могут быть массивы, объекты, логические значения, числа, строки и т. д. Это делает mongodb подходящим для иерархических данных, где требуется вложенность.

Следует иметь в виду, что структура документа не является жесткой, то есть не обязательно определять все поля во всех документах. Именно это делает mongodb гибким для неструктурированных данных.


В следующем посте будут рассмотрены основные операции CRUD.

Буду признателен любым предложениям (Прим. перевод. — В блоге автора статьи).

Надеюсь, вы найдете его полезным и узнали из него что-то новое.

Удачного кодирования 🙂

Была ли вам полезна эта статья?
[7 / 3.6]

Spread the love
Editorial Team

Recent Posts

Vue 3.4 Новая механика v-model компонента

Краткий перевод: https://vuejs.org/guide/components/v-model.html Основное использование​ v-model используется для реализации двусторонней привязки в компоненте. Начиная с Vue…

11 месяцев ago

Анонс Vue 3.4

Сегодня мы рады объявить о выпуске Vue 3.4 «🏀 Slam Dunk»! Этот выпуск включает в…

11 месяцев ago

Как принудительно пере-отобразить (re-render) компонент Vue

Vue.js — это универсальный и адаптируемый фреймворк. Благодаря своей отличительной архитектуре и системе реактивности Vue…

2 года ago

Проблемы с установкой сертификата на nginix

Недавно, у меня истек сертификат и пришлось заказывать новый и затем устанавливать на хостинг с…

2 года ago

Введение в JavaScript Temporal API

Каким бы ни было ваше мнение о JavaScript, но всем известно, что работа с датами…

2 года ago

Когда и как выбирать между медиа запросами и контейнерными запросами

Все, кто следит за последними событиями в мире адаптивного дизайна, согласятся, что введение контейнерных запросов…

2 года ago