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