Перейти к содержанию

Базы данных

В дополнение к группированию документов по коллекции MongoDB группирует коллекции в базы данных. Один экземпляр MongoDB может содержать несколько баз данных, каждая из которых объединяет ноль или более коллекций. Есть хорошее практическое правило – хранить все данные одного приложения в одной и той же базе данных. Отдельные базы данных полезны при хранении данных для нескольких приложений или пользователей на одном сервере MongoDB.

Как и коллекции, базы данных идентифицируются по имени. Имена баз данных могут быть любой строкой в формате UTF-8 со следующими ограничениями:

  • пустая строка (“”) не является допустимым именем базы данных;
  • имя базы данных не может содержать следующие символы: /, \, ., , *, <, >, :, |, ?, $, (пробел) или \0 (нулевой символ). В основном придерживаться буквенно-цифровой таблицы ASCII;
  • имена баз данных нечувствительны к регистру;
  • имена баз данных ограничены максимум 64 байтами.

Традиционно, до использования подсистемы хранения WiredTiger, имена баз данных становились файлами в вашей файловой системе. Теперь этого больше нет. Это объясняет, почему многие из предыдущих ограничений вообще существуют.

Есть также некоторые зарезервированные имена баз данных, к которым можно получить доступ, но которые имеют особую семантику. Вот они:

admin
База данных admin играет роль в аутентификации и авторизации. Кроме того, доступ к этой базе данных необходим для ряда административных операций.
local
В этой базе данных хранятся данные, относящиеся к одному серверу. В наборах реплик в базе local хранятся данные, используемые в процессе репликации. Сама база данных local никогда не реплицируется.
config
Разделенные (сегментированные) кластеры MongoDB используют базу данных config для хранения информации о каждом шарде.

Объединяя имя базы данных с коллекцией в этой базе данных, вы можете получить полное имя коллекции, которое называется пространством имен. Например, если вы используете коллекцию blog.posts в базе данных cms, пространство имен этой коллекции будет таким: cms.blog.posts. Длина пространств имен ограничена 120 байтами, а на практике должна быть менее 100 байт.

Комментарии