Первая версия MongoDB была выпущена в феврале 2007 г. 10 поколение Компания-разработчик программного обеспечения, позже в 2013 году, 10gen изменила название компании на MongoDB Inc.
MongoDB — это база данных NoSQL, которая используется для хранения данных в форме документов JSON. Благодаря этой функции в MongoDB можно легко хранить и управлять огромным объемом неструктурированных данных. Набор этих документов, содержащих данные, известен как коллекции. И эти коллекции похожи на таблицы, которые используются в реляционных базах данных для хранения данных.
Есть много причин, по которым MongoDB так популярен по сравнению с другими реляционными базами данных и базами данных NoSQL, некоторые из них:
- Разработчики могут определять структуру в соответствии с парами ключ-значение.
- Как и в реляционных базах данных, для данных не нужны строки и столбцы.
- Иерархическая структура MongoDB позволяет хранить данные в виде массивов, а также может хранить сложные данные.
- Это позволяет разработчикам легко управлять базами данных, поскольку поддерживает несколько языков программирования.
- Он также поддерживает функции gridFS и репликации.
Из-за его популярности у разработчиков, работающих с MongoDB, есть много вакансий. Эта статья посвящена наиболее важным вопросам, которые часто задают многие организации с самым высоким рейтингом.
Вопросы на собеседовании в MongoDB
Наиболее часто задаваемые вопросы разделены на три уровня: базовый уровень, средний уровень и экспертный уровень.
Начальный уровень
Эти вопросы связаны с основными понятиями и терминологией MongoDB, и ожидается, что на собеседовании каждый кандидат должен ответить на эти вопросы.
Вопрос 1: что Вы знаете о базах данных NoSQL и их типах?
Базы данных NoSQL — это те базы данных, которые не хранят данные в таблицах, как это делают базы данных SQL, а хранят данные в других формах, таких как документы и формы ключ-значение.
Существует четыре важных типа баз данных NoSQL:
- Базы документов: Эти базы данных хранят данные в виде документов JSON, эти документы объединяются в коллекции, а эти коллекции объединяются в базу данных.
- Базы данных ключ-значение: Эти базы данных хранят данные в виде пар «ключ-значение», например, «Имя = Джон», в данном примере «Имя» — ключ, а «Джон» — значение.
- Ширококолонный магазин: Эти базы данных хранят данные в виде динамических таблиц, в отличие от реляционных баз данных, эти таблицы не структурированы.
- Графические базы данных: Эти базы данных содержат ребра и узлы; узлы используются для хранения информации, тогда как ребра используются для отображения отношений между узлами.
Вопрос 2: какой тип базы данных NoSQL MongoDB?
База данных MongoDB относится к базам данных документов, что означает, что она хранит данные в соответствии с документами JSON. Он не следует какой-либо схеме и позволяет вставлять в него данные любого типа.
Вопрос 3: Какая из баз данных MongoDB и SQL лучше?
MongoDB лучше баз данных SQL тем, что может обрабатывать неструктурированные данные, тогда как базы данных SQL обрабатывают только структурированные данные и хранят их без каких-либо ограничений, в отличие от реляционных баз данных. Из-за своей особенности без схемы запросы в MongoDB обрабатываются быстрее, чем в базах данных SQL, поскольку данные не размещаются в виде таблиц, а в ряде таблиц вместо этого данные размещаются в одном и том же месте, поэтому они запросу легко получить доступ к данным, а MongoDB позволяет отображать свои данные на других языках программирования, что облегчает пользователям работу с ними.
Вопрос 4: Что такое документ и коллекция в MongoDB?
Данные хранятся в MongoDB в виде документов, затем эти документы объединяются в коллекцию, а несколько коллекций объединяются в базу данных. Чтобы понять это, рассмотрим пример базы данных school_data, база данных school_data содержит коллекции, в которых есть class_data, и далее эти документы (classes_data) содержат данные учеников (student_data) в виде документов.
Вопрос 5: Что такое типы данных MongoDB?
MongoDB поддерживает множество типов данных:
Нить | Строковый тип данных хранит данные в виде алфавитов/символов и должен иметь размер 8 байт и принадлежать кодировке UTF-8, например, Jone. |
---|---|
Целое число | Он хранит числа до 64 бит, но размер может варьироваться в зависимости от сервера, например, 1,54. |
логический | Это используется для хранения логических значений, которые могут быть 0 или 1, например, Джон в классе? Его ответ либо да, либо нет. |
Двойной | Здесь хранятся числа с плавающей запятой, такие как 22,8. |
Клавиши мин./макс. | Он используется для сравнения минимального и максимального значений. |
Массивы | Это используется для хранения массивов или нескольких значений в одном ключе. |
Отметка времени | Когда какой-либо документ изменяется, он может сохранять записи об изменениях. |
Объект | Это хранит встроенные документы |
Нулевой | Он хранит нулевые значения. |
Символ | Это тип строки и может хранить те языки, которые связаны с символами. |
Свидание | Текущее время и дата могут быть сохранены в этих типах данных |
Идентификатор объекта | Документы имеют уникальные идентификаторы, эти идентификаторы могут храниться в этом типе данных. |
Двоичные данные | В нем хранятся двоичные данные, также известные как машинный язык. |
Код | Коды Javascript хранятся в документах с помощью этого типа данных. |
Регулярное выражение | Любое выражение может быть сохранено в этом типе данных |
Вопрос 6: Какие есть альтернативы MongoDB?
MongoDB — это тип базы данных NoSQL, с помощью которой большие распределенные данные хранятся в документах BSON. Альтернативами MongoDB могут быть Amazon DynamoDB, Microsoft Azure Cosmos DB, Couchbase, PostgreSQL, Redis и Cassandra.
Промежуточный уровень
Эти вопросы больше связаны с продвинутыми концепциями, чем с основами, и ожидается, что на собеседовании на эти вопросы должен ответить средний кандидат.
Вопрос 7: Как мы можем сравнить MongoDB и SQL на высоком уровне?
Базы данных SQL — это реляционные базы данных, которые хранят данные в хорошо структурированном и организованном виде в виде строк и столбцов, которые составляют таблицы, с другой стороны, базы данных MongoDB — это базы данных NoSQL, которые хранят данные в документах, эти документы вместе известные как коллекции, и эти коллекции объединяются в базу данных.
Вопрос 8: Существуют ли какие-либо функции, такие как управление транзакциями ACID и блокировка в MongoDB?
Нет, по умолчанию MongoDB не предоставляет транзакции ACID для нескольких документов, однако может обеспечить поддержку транзакций ACID для одного документа.
Вопрос 9: Что такое индексация в MongoDB?
В MongoDB индекс — это специальная структура данных, которая занимает некоторые поля базы данных и содержит некоторые данные для создания индекса. Индекс улучшает возможности поиска в базе данных, вместо того, чтобы искать конкретную вещь из множества документов, пользователь может напрямую перейти к указанному документу с помощью индексации.
Студенческий билет знак равно 1
Имя ученика знак равно 'Павел'
Страна знак равно 'Соединенные Штаты'
}
В приведенном выше примере «Student_id = 1» является индексом, поэтому, если кто-либо выполняет поиск либо по Student_id, либо по 1, будет открыт следующий документ.
Вопрос 10: Можно ли в MongoDB создать индекс для поля массива?
Да, мы можем создать индекс для поля массива в MongoDB, и он индексирует каждое значение массива. На самом деле MongoDB сама создает многоключевой индекс, и вам не нужно указывать его, если какое-либо поле индекса является массивом.
Вопрос 11. Можно ли выполнять несколько операций Javascript в одном экземпляре MongoDB?
Можно запускать несколько операций Javascript в одном экземпляре mongod, потому что в версии 2.4 MongoDB V8 добавлен механизм javascript.
Вопрос 12: Что такое ведение журнала в MongoDB?
Когда ведение журнала включено в MongoDB, создается подкаталог журнала в каталоге /данные/дб , который является путем, определенным dbPath по умолчанию. Во время ведения журнала MongoDB редактирует и сохраняет данные в памяти и на диске, прежде чем изменения данных будут переданы на диск. Это очень полезно в случае возникновения какой-либо ошибки, из-за которой изменения в данных не были сохранены, MongoDB может получить изменения из файла журнала и может обеспечить устойчивость файлов.
Экспертный уровень
Эти вопросы связаны с более продвинутыми концепциями MongoDB. Ожидается, что на эти вопросы должен ответить кандидат с опытом.
Вопрос 13: Что такое процесс сегментирования MongoDB?
В MongoDB шардинг — это процесс распределения данных огромной базы данных между множеством серверов MongoDB. Таким образом, данные легко обрабатывать, а также можно отвечать на запросы с высокой скоростью. MongoDB поддерживает горизонтальное масштабирование за счет сегментирования.
Кластер MongoDB состоит из трех частей, которые осколки ; он также известен как реплика и доступен на каждом сервере, манго ; они действуют как интерпретатор между сервером и шардом, и серверы конфигурации ; в них хранятся параметры конфигурации кластера и метаданные.
Вопрос 14: Что такое горизонтальное масштабирование и как оно происходит в MongoDB?
Когда на одном узле много данных, несколько узлов приближаются к загруженному узлу, чтобы распределить его нагрузку. Этот процесс распределения нагрузки одного узла на разные узлы называется масштабированием, а также горизонтальным масштабированием.
Вопрос 15: Как мы можем получить информацию о планах запросов, используя язык запросов MongoDB?
объяснять() используется команда, и она поддерживает режимы «allPlansExecution, executeStats и queryPlanner». Например:
{ 'кухня' : 1 , 'район' : 'Бруклин' }
) ;
В приведенном выше примере данные ресторана извлекаются из команды объяснения().
Вопрос 16: Объясните структуру агрегации MongoDB.
В MongoDB выборка данных из разных коллекций и после вычисления возврат комбинированного результата, известного как агрегация. Он состоит из трех шагов: во-первых, он принимает входные данные и фильтрует документы, которые нам нужны, из документов с помощью $match(), затем мы выполняем агрегирование отфильтрованной информации с помощью $group() и, наконец, мы сортируем наши результаты с помощью метода $sort().
Вопрос 17: Можно ли заблокировать более одной базы данных с помощью операции MongoDB?
Да, MongoDB может заблокировать более одной базы данных, чтобы мгновенно заблокировать несколько баз данных, мы используем операцию MongoDB. db.copyDatabase() , тогда как операция, db.repairDatabase() применять глобальную блокировку при редактировании базы данных, а также ограничивать выполнение других операций до ее удаления.
Вопрос 18: Что такое GridFS в MongoDB?
Большие файлы, превышающие 16 МБ, такие как изображения, видеофайлы и аудиофайлы, управляются в MongoDB с помощью GridFS и хранятся в частях и фрагментах файла, а не в одном документе. По умолчанию MongoDB поддерживает только два формата, которые являются fs. files и fs.chunks для хранения фрагментов и метаданных файлов.
Вопрос 19: Как вы можете описать явления репликации в MongoDB?
Репликация — это процесс синхронизации данных между многими серверами, тогда как MongoDB копирует данные и реплицирует их на разные серверы, поэтому в случае сбоя сервера данные можно получить с любого другого сервера, что обеспечивает безопасность данных.
Вопрос 20: Что такое Mongo Shell?
Оболочка mongo — это платформа JavaScript, с помощью которой мы можем взаимодействовать с MongoDB, а также вносить изменения в данные с помощью запросов. Он также используется для административных целей, таких как обслуживание экземпляров базы данных. По умолчанию оболочка mongo включена в установочный файл, но если она не установлена, вы можете установить ее с сервера MongoDB.
Вывод
MongoDB — это популярная база данных NoSQL, которая используется для управления данными в форме документов, и с ней очень легко обращаться, поскольку она не содержит схемы. Он используется многими известными компаниями, такими как Twitter и Facebook. Из-за его популярности у разработчиков, работающих с интерфейсом MongoDB, есть множество вакансий. В этой статье представлены наиболее часто задаваемые вопросы интервью MongoDB с соответствующими ответами.