Базы данных, документы и коллекции в MongoDB
Описания
В этом руководстве мы познакомим вас с понятиями и основными фактами баз данных, документов и коллекций MongoDB.
Базы данных
Несколько баз данных могут быть запущены на одном сервере MongoDB. База данных MongoDB по умолчанию - «db», которая хранится в папке данных.
MongoDB может создавать базы данных на лету. Не обязательно создавать базу данных перед началом работы с ней.
Команда "show dbs" предоставляет вам список всех баз данных.
Запустите команду 'db' для ссылки на текущий объект базы данных или соединение.
Чтобы подключиться к определенной базе данных, запустите команду use.
В приведенной выше команде 'student' - это база данных, которую мы хотим выбрать.
Учебник w3resource MongoDB имеет отдельную страницу, посвященную командам, связанным с созданием и управлением базой данных.
Имена базы данных могут быть практически любым символом в диапазоне ASCII. Но они не могут содержать пустую строку, точку (то есть ".") Или "".
Так как это зарезервировано, «система» не может использоваться в качестве имени базы данных.
Имя базы данных может содержать «$».
документы
Документ является единицей хранения данных в базе данных MongoDB.
Использование документа JSON (JavaScript Object Notation, это легкий, тщательно изучаемый формат, используемый для обмена данными между различными приложениями) для хранения данных.
Простой пример документа JSON выглядит следующим образом:
{site: "w3resource.com"}
Часто термин «объект» используется для обозначения документа.
Документы аналогичны записям СУБД. Операции вставки, обновления и удаления могут выполняться в коллекции. Следующая таблица поможет вам легче понять концепцию:
RDBMS | MongoDB |
---|---|
Таблица | Коллекция |
колонка | ключ |
Значение | Значение |
Записи / Строки | Документ / Объект |
В следующей таблице показаны различные типы данных, которые могут использоваться в MongoDB.
Типы данных | Описание |
---|---|
строка | Может быть пустой строкой или комбинацией символов. |
целое число | Digits. |
логический | Логические значения True или False. |
двойной | Тип числа с плавающей запятой. |
ноль | Не ноль, не пусто. |
массив | Список значений. |
объект | Сущность, которая может быть использована в программировании. Может быть значением, переменной, функцией или структурой данных. |
отметка времени | 64-битное значение, относящееся ко времени и уникальное для одного экземпляра "mongod". Первые 32 бита этого значения относятся к секундам с UTC 1 января 1970 года. И последние 32 бита относятся к порядковому приращению операций в течение данной секунды. |
Интернационализированные Строки | UTF-8 для струнных. |
Идентификаторы объектов | Каждый объект или документ MongoDB должен иметь уникальный идентификатор объекта. Это идентификатор объекта BSON (двоичная объектная нотация JavaScript, которая является двоичной интерпретацией JSON), 12-байтовое двоичное значение, которое имеет очень редкую вероятность дублирования. Этот идентификатор состоит из 4-байтовой метки времени (секунды с начала эпохи), 3-байтового идентификатора компьютера, 2-байтового идентификатора процесса и 3-байтового счетчика. |
Коллекции
Коллекция может хранить несколько документов. Коллекция является аналогом таблицы СУБД.
Коллекция может хранить документы тех, кто не одинаков по структуре. Это возможно, потому что MongoDB - это база данных без схемы . В реляционной базе данных, такой как MySQL, схема определяет организацию / структуру данных в базе данных. MongoDB не требует такого набора формул, определяющих структуру данных. Таким образом, в коллекции вполне возможно хранить документы различной структуры. Практически вам не нужно определять столбец и его тип данных в отличие от RDBMS при работе с MongoDB.
В следующем коде показано, что два документа MongoDB, принадлежащие к одной коллекции, хранят данные разных структур.
{"tutorial" : "NoSQL"}
{"topic_id" : 7}
Коллекция создается при вставке первого документа.
Иллюстрированная презентация: коллекции и документы
Допустимые имена коллекций
Названия коллекций должны начинаться с букв или подчеркивания.
Название коллекции может содержать цифры.
Вы не можете использовать символ «$» в названии коллекции. «$» зарезервировано.
Название коллекции не должно превышать 128 символов. Будет хорошо, если вы сохраните его в пределах 80/90 символов.
Используя "." (точка), коллекции могут быть организованы в именованные группы. Например, tutorials.php и tutorials.javascript относятся к учебникам. Этот механизм называется пространством имен коллекции, которое предназначено в первую очередь для пользователя. Базы данных не имеют к этому никакого отношения.
Ниже описано, как использовать его программно:
db.tutorials.php.findOne()
закрытые коллекции
Представьте, что вы хотите регистрировать действия, происходящие с приложением. Вы хотите хранить данные в том же порядке, в котором они вставлены. MongoDB предлагает ограниченные коллекции для этого.
Закрытые коллекции - это коллекции, которые могут хранить данные в том же порядке, в котором они вставлены.
Это очень фиксированный размер, высокопроизводительный и «auto-FIFO age-Out». То есть, когда выделенное пространство полностью используется, вновь добавленные объекты (документы) заменят старые в том же порядке, в котором они были вставлены.
Поскольку данные хранятся в естественном порядке, то есть в том порядке, в котором они вставлены, при извлечении данных упорядочение не требуется, если только вы не хотите изменить порядок.
Новые объекты могут быть вставлены в ограниченную коллекцию.
Существующие объекты могут быть обновлены.
Но вы не можете удалить отдельный объект из ограниченной коллекции. Используя команду drop, вы должны удалить все документы. После удаления вам нужно воссоздать ограниченную коллекцию.
В настоящее время максимальный размер ограниченного набора составляет 1e9 (т.е. 1X10 9 ) для 32-разрядных компьютеров. Для 64-битных машин теоретического ограничения нет. Практически это может быть расширено, пока ваши системные ресурсы не позволят.
Закрытые коллекции могут использоваться для регистрации, кэширования и автоматического архивирования.
Используйте количество коллекций вместо одного
Это исключает требование при создании индекса, поскольку вы не храните некоторые повторяющиеся данные для каждого объекта.
Применительно к подходящей ситуации это может повысить производительность.
Метаданные
Информация о базе данных хранится в определенных коллекциях. Они сгруппированы в пространстве имен системы, как
dbname.system.*
В следующей таблице показаны коллекции и что они хранят
Коллекции с пространством имен | Описание |
---|---|
dbname.system.namespaces | список всех пространств имен |
dbname.system.indexes | список всех индексов |
dbname.system.profile | хранит информацию о профилировании базы данных |
dbname.system.users | список пользователей, которые могут получить доступ к базе данных |
dbname.local.sources | хранит данные конфигурации и состояния реплики подчиненного |
dbname.local.sources | хранит данные конфигурации и состояния реплики подчиненного |
Есть еще два варианта хранения метаданных:
В файлах database.ns хранятся дополнительные метаданные пространства имен / индекса, если они существуют.
Информация о структуре хранимого объекта хранится в самом объекте.
Предыдущая: Типы данных
Далее: MongoDB СОЕДИНЕНИЯ
Новый контент: Composer: менеджер зависимостей для PHP , R программирования