Изучаем MongoDB: быстрый старт
Перевод статьи: Paras — Learn 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, установите его. Это приложение с графическим интерфейсом, которое поможет вам интуитивно визуализировать ваши базы данных.
Две важные вещи, которые вы получите после установки:
- mongod : сервер mongodb
- 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.
Буду признателен любым предложениям (Прим. перевод. — В блоге автора статьи).
Надеюсь, вы найдете его полезным и узнали из него что-то новое.
Удачного кодирования 🙂