MongoDB это кросс-платформенная, документо-ориентированная база данных, которая обеспечаивает высокую производительность и лёгкую масштабируемость. В основе данной БД лежит концепция коллекций и документов.
База данных
База данных представленна в виде физического хранилища коллекций. Каждая БД имеет свой собственный набор файлов в файловой системе. Обычно, один MongoDB сервер имеет несколько БД.
Коллекция
Коллекция – это группа документов MongoDB. Является эквивалентом простой таблицы в реляционной базе данных. Коллекция помещена внутри одной БД. Документ в коллекции моет иметь различные поля. Чаще всего, все документы в коллекции созданы для одной, либо относящихся друг ко другу целей.
Документ
Документ – это набор пар “ключ – значение”. Документ имеет динамическую схему. Это означает, что документ в одной и той же коллекции не обязан иметь один одинаковый набор полей или структуру, а общие поля в коллекции могут иметь различные типы данных.
Ниже приведена небольшая сравнительная таблица реляционных БД и MongoDB:
Реляционная БД | MongoDB |
---|---|
База данных | База данных |
Таблица | Коллекция |
Ряд | Документ |
Колонка | Поле |
Объединенние таблиц | Встроенные документы (embedded) |
Первичный ключ (primary key) | Первичный ключ (primary key). По умолчанию MongoDB генерирует Default key_id |
Пример документа
Ниже приведён пример простого документа, который представляет проект, в котором задействованы разработчики:
{
_id: ObjectId(7bf78ad8902c)
title: 'MongoDB',
description: 'Simple MongoDB Database',
by: 'proselyte',
url: 'proselyte.net',
tags: ['proselyte tutorials', 'NoSQL', 'MongoDB'],
developers: [
{
developer:'developer1',
specialty: 'Java Developer'
},
{
developer: 'developer2'
specialty: 'C++ Developer'
}
]
}
_id это 12 байтовый 16-чное число, которое гарантирует уникальность каждого документа. Мы можем передавать id при вставке данных в документ. Если мы это не делаем, то MongoDB генерирует уникальный id автоматически для каждого документа. Первые 4 цифры данного значения – это текущее время, следующие 3 – id компьютера, следующие 2 – id процесса на сервере MongoDB, а крайние 3 -простое порядковое значение.
На этом мы заканчиваем введение в MongoDB.
В следующей статье мы рассмотрим преимущества MongoDB и NoSQL БД в целом.