MongoDB — это кроссплатформенная, ориентированная на документы база данных, которая обеспечивает высокую производительность, высокую доступность и простоту масштабирования. MongoDB работает над концепцией сбора и документа.
База данных
База данных — это физический контейнер для коллекций. Каждая база данных получает свой набор файлов в файловой системе. Один сервер MongoDB обычно имеет несколько баз данных.
Коллекция
Коллекция представляет собой группу документов MongoDB. Это эквивалент таблицы RDBMS. Коллекция существует в одной базе данных. Коллекции не применяют схему. Документы в коллекции могут иметь разные поля. Как правило, все документы в коллекции имеют аналогичное или связанное назначение.
Документ
Документ — это набор пар ключ-значение. Документы имеют динамическую схему. Динамическая схема означает, что документы в одной коллекции не обязательно должны иметь одинаковый набор полей или структуру, а общие поля в документах коллекции могут содержать данные разных типов.
В следующей таблице показана взаимосвязь терминологии СУБД с MongoDB.
RDBMS | MongoDB |
---|---|
База данных | База данных |
Таблица | Коллекция |
Кортеж / Ряд | Документ |
колонка | поле |
Присоединение к таблице | Вложенные документы |
Основной ключ | Первичный ключ (ключ по умолчанию _id, предоставленный самой mongodb) |
Сервер базы данных и клиент | |
ТуздЫ / Oracle | mongod |
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 байта являются простым инкрементным ЗНАЧЕНИЕМ.