Базы данных¶
В дополнение к группированию документов по коллекции 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 байт.