Содержание

что это, для чего используется, особенности

#Managed IT #Software

MongoDB — система управления базами данных, которая работает с документоориентированной моделью данных. В отличие от реляционных СУБД, MongoDB не требуются таблицы, схемы или отдельный язык запросов. Информация хранится в виде документов либо коллекций.

Разработчики позиционируют продукт как промежуточное звено между классическими СУБД и NoSQL. MongoDB не использует схемы, как это делают реляционные базы данных, что повышает производительность всей системы.

У MongoDB есть ряд свойств, которые выделяют ее на фоне других продуктов:

  1. Кроссплатформенность. СУБД разработана на языке программирования С++, поэтому с легкостью интегрируется под любую операционную систему (Windows, Linux, MacOS и др.).
  2. Формат данных. MongoDB использует собственный формат хранения информации — Binary JavaScript Object Notation (BSON), который построен на основе языка JavaScript.
  3. Документ. Если реляционные БД используют строки, то MongoDB — документы, которые хранят значения и ключи.
  4. Вместо таблиц MongoDB использует коллекции. Они содержат разные типы наборов данных
  5. Репликация. Система хранения информации в СУБД представлена узлами. Существует один главный и множество вторичных. Данные реплицируются между точками. Если один первичный узел выходит из строя, то вторичный становится главным.
  6. Индексация. Технология применяется к любому полю в документе на усмотрение пользователя. Проиндексированная информация обрабатывается быстрее.
  7. Для сохранения данных большого размера MongoDB использует собственную технологию GridFS, состоящую из двух коллекций. В первой (files) содержатся имена файлов и метаданные по ним. Вторая (chunks) сохраняет сегменты информации, размер которых не превышает 256 Кб.
  8. СУБД осуществляет поиск по специальным запросам. Например, пользователь может создать диапазонный запрос и мгновенно получить ответ.
  9. Балансировщик нагрузки используется в СУБД не только для распределения нагрузки между разными базами данных, но и для горизонтального масштабирования. Сегменты БД распределяются по разным узлам, что повышает производительность. При этом базы данных, расположенные на разных узлах, синхронизированы между собой и обеспечивают целостность информации для клиента.
  10. MongoDB может поставляться для конечного клиента как облачное решение.

СУБД используют для хранения событий в системе (логирование), записи информации с датчиков мониторинга на предприятии, а также в сфере электронной коммерции и мобильных приложений. Часто MongoDB применяют как хранилище в сфере машинного обучения и искусственного интеллекта.

MongoDB относится к классу NoSQL СУБД и работает с документами, а не с записями. Это кроссплатформенный продукт, который легко внедряется в любую операционную систему. Ряд уникальных особенностей позволяет использовать СУБД под определённые задачи, в которых она обеспечивает максимальную производительность и надежность.

Оцените данную статью

MongoDB: введение, преимущества и настройка среды | by Jenny V | NOP::Nuances of Programming

MongoDB — кроссплатформенная документоориентированная база данных с открытым ПО и ведущая база данных NoSQL, написанная на C++. Она опирается на концепции коллекций и документов .В данном руководстве объясняются ключевые концепции MongoDB, необходимые для создания и развертывания высоко масштабируемой базы данных с акцентом на производительность.

Целевая аудитория

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

Необходимые требования

Для работы с руководством требуется начальное представление о базе данных, текстовом редакторе и выполнении программ. Поскольку речь идет о разработке высокопроизводительной базы данных, необходимо знать ключевые концепции реляционной системы управления базами данных (РСУБД).

База данных

База данных — это физический контейнер для коллекций. Каждая БД располагает собственным набором файлов в файловой системе. Как правило, на одном сервере MongoDB находятся несколько баз данных.

Коллекция

Коллекция — набор документов MongoDB. Она представляет собой эквивалент таблицы в РСУБД. Коллекция размещается внутри одной базы данных и не требует описания схемы. Документы в коллекции могут иметь разные поля, и, как правило, их объединяет схожее или общее назначение.

Документ

Документ — это набор пар ключ-значение. Он обладает динамической схемой — документы одной коллекции необязательно должны иметь одинаковый набор полей или структуру, а их общие поля могут содержать разные типы данных.

Ниже представлена сравнительная таблица терминов, принятых в РСУБД и MongoBD:

Пример документа

Данный пример отображает структуру документа сайта блога, которая представляет собой пару ключ-значение, просто разделенную запятой:

{
_id: ObjectId(7df78ad8902c)
title: 'MongoDB Overview',
description: 'MongoDB is no sql database',
by: 'Nuances of programming',
url: 'https://nuancesprog. ru/',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100,
comments: [
{
user:'user1',
message: 'My first comment',
dateCreated: new Date(2011,1,20,2,15),
like: 0
},
{
user:'user2',
message: 'My second comments',
dateCreated: new Date(2011,1,25,7,45),
like: 5
}
]
}

_id — это 12-ти байтовое шестнадцатеричное число, гарантирующее уникальность каждого документа. Он указывается при вставке документа. Если этого не сделать, MongoDB сама создает такой идентификатор для каждого документа. Первые 4 байта из 12 означают метку времени; следующие 3 байта — id компьютера; следующие 2 байта — id процесса на сервере MongoBD; и оставшиеся 3 байта являются простым инкрементным значением.

Любая реляционная база данных имеет стандартную схему, которая показывает количество таблиц и связи между ними. В MongoDB такие связи не предусмотрены.

Преимущества MongoDB перед РСУБД

  • Отсутствие схемы. MongoDB — это документоориентированная база данных, в которой одна коллекция содержит различные документы. Количество полей, содержимое и размер документов могут отличаться.
  • Понятная структура объекта.
  • Отсутствие сложных соединений Join.
  • Расширенные возможности запросов. MongoDB поддерживает динамические запросы документов, используя язык запросов на их основе, практически не уступающий в эффективности SQL.
  • Настройка.
  • Легкость масштабирования.
  • Не требуется преобразование объектов приложения в объекты базы данных.
  • Использует внутреннюю память для хранения (оконного) рабочего набора, обеспечивая ускоренный доступ к данным.

Аргументы в пользу MongoDB

  • Документоориентированное хранение данных. Данные хранятся в виде документов в формате JSON.
  • Индекс для любого атрибута.
  • Репликация и высокая доступность.
  • Автоматический шардинг.
  • Полнофункциональные запросы.
  • Быстрые обновления.
  • Профессиональная поддержка, предоставляемая MongoDB.

Области использования MongoDB

  • Большие данные.
  • Управление и доставка контента.
  • Мобильная и социальная инфраструктуры.
  • Управление пользовательскими данными.
  • Центр управления и обработки данных (Data Hub).

Установка MongoDB на Windows

Загружаем последнюю версию MongoDB с сайта https://www.mongodb.com/download-center.

Вводим необходимые данные и переходим на вкладку Server. В ней выбираем версию MongoDB, операционную систему и установочный пакет:

Устанавливаем скаченный файл. По умолчанию он будет установлен в каталог C:\Program Files\.

MongoDB предусматривает наличие каталога данных для хранения файлов. По умолчанию он находится в c:\data\db. Для создания данного каталога выполняем команды в командной строке:

C:\>md data
C:\md data\db

Указываем путь dbpath к созданному каталогу в mongod. exe, для чего применяем далее указанные команды.

В командной строке переходим к текущей директории bin в установочном каталоге MongoDB. Допустим, что установочный каталог — C:\Program Files\MongoDB:

C:\Users\XYZ>d:cd C:\Program Files\MongoDB\Server\4.2\bin
C:\Program Files\MongoDB\Server\4.2\bin>mongod.exe --dbpath "C:\data"

В консоли появится сообщение об ожидании соединения, что говорит об успешном выполнении процесса mongod.exe.

Для запуска MongoDB открываем другую командную строку и вводим:

C:\Program Files\MongoDB\Server\4.2\bin>mongo.exe
MongoDB shell version v4.2.1
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("4260beda-f662-4cbe-9bc7-5c1f2242663c") }
MongoDB server version: 4.2.1
>

Как видно, MongoDB успешно установлена и запущена. При следующем ее запуске потребуются только команды:

C:\Program Files\MongoDB\Server\4. 2\bin>mongod.exe --dbpath "C:\data"
C:\Program Files\MongoDB\Server\4.2\bin>mongo.exe

Установка MongoDB на Ubuntu

Выполняем данную команду для импорта публичного ключа GPG MongoDB:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10

Создаем файл /etc/apt/sources.list.d/mongodb.list с помощью команды:

echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' 
| sudo tee /etc/apt/sources.list.d/mongodb.list

Обновляем репозиторий:

sudo apt-get update

Устанавливаем MongoDB:

apt-get install mongodb-10gen = 4.2

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

Запуск MongoDB:

sudo service mongodb start

Завершение работы:

sudo service mongodb stop

Возобновление работы:

sudo service mongodb restart

Для работы с MongoDB вводим команду:

mongo

И подключаемся к запущенному экземпляру MongoDB.

Помощь MongoDB

Для получения списка команд вводим db.help() в клиенте MongoDB. В результате открывается перечень команд, как показано на скриншоте:

Статистика MongoDB

Для получения данных о сервере MongoDB вводим в клиенте команду db.stats(). Вам будет предоставлена информация об имени базы данных, количестве коллекций и документов. Результат выполнения команды отображен на следующем скриншоте:

Читайте также:

  • Как построить идеальное хранилище данных
  • Выбираем базу данных
  • Выбор между SQL и NoSQL: ACID и CAP, схема и транзакции

Читайте нас в Telegram, VK и Яндекс.Дзен

Что такое MongoDB? | MongoDB

Available how you want it

Sandbox
  • Free, forever
  • Ideal for learning, developing, and prototyping
Shared
  • Up to 5GB storage
  • Shared RAM
Dedicated
  • Consistant производительность
  • Повышенная безопасность
  • Неограниченное масштабирование

Сервер

MongoDB предлагает как корпоративную, так и общественную версию своей мощной распределенной базы данных документов

Community
  • Feature rich
  • Developer ready
Enterprise
  • Advanced features
  • Performance grade

Cloud

Cloud

Sandbox
  • Free, forever
  • Ideal for learning, developing и прототипирование
Общая
  • До 5 Гб для хранения
  • Общая оперативная память
Выделенная
  • Стабильная производительность
  • Advanced security
  • Unlimited scaling

Server

Server

MongoDB offers both an Enterprise and Community version of its powerful distributed document database

Community
  • Feature rich
  • Developer ready
Enterprise
  • Расширенные функции
  • Уровень производительности

Упрощает разработку

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

Connect

Здесь мы подключаемся к локально размещенной базе данных MongoDB под названием test с коллекцией с именем restaurant.

View Documentation

  • MongoDB хранит данные в гибких JSON-подобных документах , что означает, что поля могут варьироваться от документа к документу, а структура данных может меняться с течением времени

  • Модель документа сопоставляется с объектами в вашем приложении с кодом , что упрощает работу с данными

  • Специальные запросы, индексирование и агрегация в реальном времени обеспечивают мощные способы доступа к данным и их анализа

  • MongoDB — это распределенная база данных по своей сути , поэтому высокая доступность, горизонтальное масштабирование и географическое распределение встроены и просты в использовании

  • MongoDB бесплатна для использования . Версии, выпущенные до 16 октября 2018 г., публикуются в рамках AGPL. Все версии, выпущенные после 16 октября 2018 г., в том числе исправления для предыдущих версий, публикуются в соответствии с общедоступной лицензией на стороне сервера (SSPL) v1.

Learn more about MongoDB’s architecture →

85,000,000+

Downloads & Atlas Clusters

1,300,000+

MongoDB University Students

35,000+

GitHub Repos

1,000,000+

Community members

Need запустить MongoDB?

  • Высокая доступность за счет встроенной репликации и аварийного переключения

  • Горизонтальная масштабируемость с собственным сегментированием

  • Сквозная безопасность

  • Встроенная проверка документов и исследование схемы с помощью Compass

  • Средства управления для автоматизации, мониторинга и резервного копирования

  • Полностью встроенная эластичная база данных как сервис практики

Узнайте больше о наших продуктах →

Нам доверяют тысячи команд

Готовы начать?

Запустите новый кластер или перейдите на MongoDB Atlas без простоев.

MongoDB: Платформа данных для разработчиков

НОВИНКА Получите новейшую и лучшую версию MongoDB 6.0 —

Подробнее

Быстрее выводите свои идеи на рынок с платформой данных для разработчиков, созданной на основе ведущей современной базы данных. Поддерживайте транзакционные, поисковые, аналитические и мобильные варианты использования, используя общий интерфейс запросов и любимую разработчиками модели данных.

ДОВЕРЯЮТ ТЫСЯЧИ ОРГАНИЗАЦИЙ, В ТОМ ЧИСЛЕ

Университет MongoDB

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

Узнать сейчас

Работа с данными не должна быть сложной


Наш основной принцип — помочь разработчикам решать проблемы с данными. Вот что вы можете сделать с MongoDB.

Создавайте быстрее

Поставляйте и выполняйте итерации в 3–5 раз быстрее благодаря нашей гибкой модели данных документов и унифицированному интерфейсу запросов для любого варианта использования.

Дальнейшее масштабирование

Будь то ваш первый клиент или 20 миллионов пользователей по всему миру, соблюдайте соглашения об уровне обслуживания производительности в любой среде.

Sleep Better

Легко обеспечивайте высокую доступность, защищайте целостность данных и соблюдайте стандарты безопасности и соответствия требованиям для критически важных рабочих нагрузок.

Полностью управляемый в облаке

Начните за секунды и масштабируйте до миллионов с помощью наших облачных сервисов

Самоуправляемый в любой среде

Запускайте MongoDB где угодно, от ноутбука до центра обработки данных

С документом модель данных, которая соответствует тому, как разработчики думают и кодируют, и мощный унифицированный API запросов, MongoDB обеспечивает более быструю и гибкую разработку приложений.

Посмотреть документацию

Одна платформа, множество рабочих нагрузок

Транзакционный, аналитический, полнотекстовый поиск, временные ряды и т. д.

Запрос и анализ данных на месте

Согласованный интерфейс Query API для всех операций с поддержкой идиоматического языка

Простое развертывание, масштабирование и оптимизация

Уверенная работа в производственной среде благодаря встроенным средствам репликации, сегментирования, индексирования, повышения производительности и т. д.

Одна платформа, множество рабочих нагрузок

Транзакционный, аналитический, полнотекстовый поиск, временные ряды и т. д.

Транзакции

Поиск

Временные ряды

Потоки изменений/управляемые событиями

Запрос и анализ данных на месте

Согласованность API запросов для всех операций , с поддержкой идиоматических языков

Транзакции

Поиск

Временные ряды

Потоки изменений / управление событиями

Простое развертывание, масштабирование и оптимизация

Уверенная работа в производственной среде благодаря встроенным средствам репликации, сегментации, индексации, инструментам повышения производительности и т. д. Потоки/управление событиями

Решения для данных, адаптированные


для вашего бизнеса

Независимо от того, расширяете ли вы границы клиентского опыта или создаете критически важные приложения, MongoDB является основой данных для любой отрасли

ФИНАНСОВЫЕ УСЛУГИ

Избавьтесь от рисков при модернизации

Итеративная модернизация позволяет финансовым компаниям внедрять инновации в процессе модернизации — с немедленными выгодами и меньшим риском.

Узнать больше

SMART FACTORY

«Для разработчиков это просто, очень легко быстро работать. Тратить время на создание ценности для бизнеса, а не на моделирование данных».

Филип Дадгар

Главный архитектор решений и ИТ-менеджер, Toyota Material Handling

БЫСТРОЕ МАСШТАБИРОВАНИЕ

«Гибкая разработка, междисциплинарные группы, быстрая итерация и еженедельные выпуски — все это помогло нам плавно реагировать на изменения спроса.