Позвольте мне дать вам краткий обзор MongoDB.
Почему MongoDB интересен?
Как это полезно для нашего приложения?
И каковы некоторые из характерных особенностей MongoDB в
отличие от традиционных баз данных SQL?
Таким образом, это не будет целые договоры или базы данных.
Я предполагаю, что у вас достаточно знаний о базах данных.
Так что я бы представил, что MongoDB было бы легко для вас следовать.
Исходя из ваших предыдущих знаний о базах данных,
я предполагаю, что вы уже понимаете, что базы данных используются для хранения структурированных данных,
а также позволяют выполнять
различные операции с данными, включая запрос данных,
вставку записей в базу данных,
обновление существующей записи в базе данных или удаление записи из базы данных.
Типичные операции crud, поддерживаемые в базах данных.
Структурированный язык запросов или базы данных на основе SQL были
очень популярны в течение длительного времени как средство хранения данных.
MySQL является одним из примеров базы данных на основе SQL.
Они были очень эффективными в хранении
данных, а затем удовлетворении многих потребностей приложений.
Действительно, многие веб-сайты уже используют базы данных SQL в качестве бэкэнда для хранения данных
, учитывая, что почему нет баз данных SQL
важно с новыми видами приложений, которые приходят в оперативный режим.
Возрастает спрос на
новые функции, которые не все базы данных на основе SQL могут использоваться.
Таким образом, здесь база данных на основе NoSQL не только
база данных на основе SQL получает много грантов,
одним из примеров этого является MongoDB.
Таким образом, базы данных NoSQL предназначены для
устранения некоторых недостатков баз данных на основе SQL.
Сами базы данных NoSQL можно разделить на четыре различные категории.
У нас есть базы данных на основе документов, такие как MongoDB,
у нас есть более простые базы данных на основе ключевых значений, такие как Redis,
базы данных на основе столбцов, такие как Cassandra, а затем новые базы данных графа, такие как
Neo4J, и действительно есть больше на рынке, чем эти примеры, которые я дал.
Но, конечно, в этом курсе
мы сосредоточимся в первую очередь на базах данных, основанных на документации, в частности MongoDB.
Так что я расскажу больше о MongoDB в остальной части этой лекции.
Базы данных документов, как следует из названия,
построены вокруг документов.
Документ является автономной единицей информации и может быть в различных форматах,
JSON является одним из самых популярных форматов для хранения документов в базе данных документов.
В качестве примера здесь показан документ JSON, и
это будет то, что даровано в типичной базе данных документов.
Сами документы могут быть организованы в коллекции.
Таким образом, коллекция представляет собой группу документов и, в свою очередь,
сама база данных может рассматриваться как набор коллекций.
Таким образом, эти термины, «Коллекции документов» и «База данных» будут возникать
часто, когда мы обсуждаем о базах данных документов и MongoDB в частности.
Почему нам интересны базы данных NoSQL?
В частности, масштабируемость является одной из
причин, почему базы данных NoSQL очень хорошо освещались.
Теперь с точки зрения масштабируемости,
когда мы рассмотрим два требования:
доступность и согласованность баз данных, как правило,
базы данных SQL очень трудно удовлетворить оба требования одновременно.
Таким образом, существует компромисс между доступностью и согласованностью.
Таким образом, здесь базы данных NoSQL были намного
успешнее в удовлетворении обоих требований.
Здесь
также вступает в силу третий аспект, выделенный здесь, допуск к разделению.
Теперь разбиение базы данных SQL, а затем ее распространение не так просто.
В то время как база данных NoSQL гораздо более
поддается разделению, а затем распределяется по нескольким серверам.
Второй аспект, почему базы данных NoSQL были популярны, это простота развертывания.
При использовании базы данных SQL
необходимо
сопоставить записи в базе данных SQL с объектами на родном языке, такими как Java или Javascript и так далее.
Таким образом, существует потребность в объектно-реляционном сопоставлении, и именно
в этом случае промежуточный шлюз должен заполнить это требование.
С базой данных NoSQL, такой как база данных на основе документов, хранящая данные в виде JSON,
сопоставление становится довольно простым, и это одна из причин, почему
базы данных NoSQL были очень популярны в области веб-разработки.
Приходя к MongoDB, в частности,
MongoDB является базой данных документов.
Сам сервер может поддерживать несколько баз данных.
База данных, в частности, представляет собой набор коллекций
и сама коллекция, как мы обсуждали ранее, представляет собой набор документов.
Таким образом, документ становится единицей информации в случае MongoDB.
Документ в MongoDB - это не что иное, как документ JSON.
На самом деле MongoDB хранит документ в более компактном виде, называемом как формат BSON.
Мы поговорим об этом на следующем слайде.
В то время как MongoDB является базой данных на основе документов,
он хранит документы JSON в компактном виде,
называемом как формат BSON или двоичный формат JSON.
Теперь это поддерживает префикс длины для каждого значения
, так что пропуск поля становится намного проще.
Таким образом, как вы видите, MongoDB поддерживает дополнительные функции, чем простая база данных документов.
Также хранится информация о типе значения поля.
Кроме того, в документе JSON
сохраняются дополнительные примитивные типы, которые
полезны при выполнении операций с базой данных.
Такие вещи, как формат даты UTC,
он также поддерживает необработанный двоичный файл, а также использует формат идентификатора объекта
для хранения идентификатора каждого документа в базе данных, если вы хотите.
Давайте поговорим об этом чуть более подробно на следующем слайде.
Давайте поговорим о идентификаторе объекта MongoDB.
Каждый документ в базе данных MongoDB должен иметь поле ID,
поле ID подчеркивания,
которое действует в качестве первичного ключа для документа.
И это поле уникально для каждого документа.
Само поле ID может быть использовано во
многих форматах и один конкретный формат, который MongoDB автоматически
присваивает, если вы не решите использовать собственное поле ID
является идентификатор объекта, который создается по умолчанию MongoDB.
Таким образом, идентификатор объекта сам по себе
является структурированной частью информации, но хранится как идентификатор документа.
Например, поле ID, которое автоматически
назначается Mongo в случае, если вы не укажете поле ID,
содержит идентификатор объекта в виде длинной строки.
Теперь эта строка имеет определенный формат, который
позволяет ей хранить ряд фрагментов информации в идентификаторе объекта.
Давайте посмотрим на структуру самого идентификатора объекта на следующем слайде.
Как я уже упоминал, само поле ID объекта
является 12-байтовым полем, которое хранит информацию в определенном формате.
Первые четыре байта включают временную
метку, типичную временную метку Unix в разрешении секунды.
Так что это сказано в первых четырех байтах.
Затем следующие три байта к идентификатору машины,
компьютер, на котором работает сервер Mongo,
и следующие два байта - идентификатор процесса,
конкретный процесс Mongo, который создал
этот документ, а затем последнее поле является приращением.
Теперь, как вы понимаете,
само поле метки времени находится на разрешении секунды.
Поэтому, если у вас есть несколько документов, которые хранятся в течение одной секунды,
поле приращения будет различать документы.
Они инкрементное поле является самоувеличивающимся полем.
Таким образом, каждый новый документ, созданный в течение секунды, получит новое значение приращения.
Таким образом, в сочетании с этими двумя,
вы можете легко различать
различные документы, которые хранятся в вашей базе данных документов.
Таким образом, это позволяет четко давать уникальный идентификатор каждому документу.
Мало того, что, учитывая идентификатор,
вы можете легко получить информацию из этого идентификатора.
Так, например, вы можете получить ObjectID, а затем вызвать
метод getTimestamp идентификатора объекта, и
это вернет временную метку в формате даты ISO.
Таким образом, вы сможете определить, когда этот документ был создан.
С этим быстрым пониманием MongoDB,
давайте перейдем к упражнению, где мы сначала установим MongoDB на нашем компьютере,
а затем взаимодействуем с базой данных MongoDB, используя
пульсацию Mongo, чтение оценки цикла печати, который Mongo поддерживает.
Теперь, после этого, мы рассмотрим, как мы можем получить доступ к
серверу Mongo из нашего приложения узла в следующем уроке.