MongoDB - Обзор
MongoDB - это кроссплатформенная документно-ориентированная база данных, которая обеспечивает высокую производительность, доступность и простую масштабируемость. MongoDB работает над концепцией коллекции и документа.
База данных
База данных - это физический контейнер для коллекций. Каждая база данных получает свой собственный набор файлов в файловой системе. Один сервер MongoDB обычно имеет несколько баз данных.
Коллекция
Коллекция - это группа документов MongoDB. Это эквивалент таблицы СУБД. Коллекция существует в одной базе данных. Коллекции не применяют схему. Документы в коллекции могут иметь разные поля. Как правило, все документы в коллекции имеют схожие или связанные цели.
Документ
Документ - это набор пар ключ-значение. Документы имеют динамическую схему. Динамическая схема означает, что документы в одной коллекции не обязательно должны иметь одинаковый набор полей или структуру, а общие поля в документах коллекции могут содержать разные типы данных.
В следующей таблице показана взаимосвязь терминологии СУБД с MongoDB.
СУБД | MongoDB |
---|---|
База данных | База данных |
Стол | Коллекция |
Кортеж / строка | Документ |
столбец | Поле |
Присоединение к таблице | Встроенные документы |
Основной ключ | Первичный ключ (ключ по умолчанию _id, предоставляемый самим MongoDB) |
Сервер базы данных и клиент | |
mysqld / Oracle | монгод |
mysql / sqlplus | монго |
Образец документа
В следующем примере показана структура документа сайта блога, которая представляет собой просто пару значений ключа, разделенных запятыми.
{
_id: ObjectId(7df78ad8902c)
title: 'MongoDB Overview',
description: 'MongoDB is no sql database',
by: 'tutorials point',
url: 'http://www.tutorialspoint.com',
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 байтов, обеспечивающее уникальность каждого документа. Вы можете указать _id при вставке документа. Если вы не предоставите, MongoDB предоставляет уникальный идентификатор для каждого документа. Эти 12 байтов: первые 4 байта для текущей метки времени, следующие 3 байта для идентификатора машины, следующие 2 байта для идентификатора процесса сервера MongoDB и оставшиеся 3 байта представляют собой простое инкрементное ЗНАЧЕНИЕ.