95 вопросов интервью MongoDB (включая ответы), подробный анализ 10 000 слов!

интервью Java

1. Что такое монгодб?

MongoDB написана на языке C++ и представляет собой систему баз данных с открытым исходным кодом, основанную на распределенном хранилище файлов. В случае высокой нагрузки добавление дополнительных узлов может обеспечить производительность сервера. MongoDB стремится предоставить масштабируемое, высокопроизводительное решение для хранения данных для веб-приложений.

MongoDB хранит данные в виде документа, а структура данных состоит из пар ключ-значение (ключ=>значение). Документы MongoDB аналогичны объектам JSON. Значения полей могут содержать другие документы, массивы и массивы документов.

2. Каковы характеристики mongodb?

(1) MongoDB — это база данных, ориентированная на хранение документов, которая относительно проста и удобна в эксплуатации.

(2) Вы можете установить индекс любого атрибута в записи MongoDB (например, FirstName="Sameer",Address="8 Gandhi Road") для более быстрой сортировки.

(3) Вы можете создавать зеркалирование данных локально или через сеть, что делает MongoDB более масштабируемой.

(4) Если нагрузка увеличивается (требуется больше места для хранения и более высокая вычислительная мощность), ее можно распределить между другими узлами в компьютерной сети, что называется сегментированием.

(5) Mongo поддерживает расширенные выражения запросов. Команды запроса используют разметку в стиле JSON для простого запроса объектов и массивов, встроенных в документы.

(6) MongoDb может использовать команду update() для замены завершенного документа (данных) или некоторых указанных полей данных.

(7) Map/reduce в Mongodb в основном используется для пакетной обработки и агрегирования данных.

(8) Карта и уменьшение. Функция Map вызывает emit(key, value) для обхода всех записей в коллекции и передает ключ и значение функции Reduce для обработки.

(9) Функция Map и функция Reduce написаны на Javascript и могут выполнять операцию MapReduce с помощью команды db.runCommand или mapreduce.

(10) GridFS — это встроенная функция MongoDB, которую можно использовать для хранения большого количества небольших файлов.

(11) MongoDB позволяет выполнять скрипты на стороне сервера. Вы можете написать функцию на Javascript и выполнить ее непосредственно на стороне сервера. Вы также можете сохранить определение функции на стороне сервера и вызвать ее в следующий раз напрямую.

3. Что вы подразумеваете под базой данных NoSQL?В чем разница между NoSQL и RDBMS напрямую?Почему использовать или не использовать базу данных NoSQL?Расскажите мне несколько преимуществ базы данных NoSQL?

NoSQL — это нереляционная база данных, NoSQL = не только SQL.

Реляционные базы данных используют структурированные данные, тогда как NoSQL хранит данные в виде пар ключ-значение.

При работе с неструктурированными/полуструктурированными большими данными, при расширении в горизонтальном направлении, при работе с динамически увеличивающимися элементами данных в любое время приоритет может отдаваться базе данных NoSQL.

При рассмотрении зрелости базы данных, поддержки, аналитики и бизнес-аналитики, управления и профессионализма приоритет следует отдавать реляционным базам данных.

4. Какие существуют типы баз данных NoSQL?

Типы баз данных NoSQL

Например: MongoDB, Cassandra, CouchDB, Hypertable, Redis, Riak, HBASE, Memcache.

5. В чем основная разница между MySQL и MongoDB?

И MySQL, и MongoDB являются бесплатными базами данных с открытым исходным кодом. MySQL и MongoDB имеют много фундаментальных различий, включая представление данных, запросы, отношения, транзакции, дизайн и определение схемы, нормализацию, скорость и производительность.

Сравнивая MySQL и MongoDB, мы фактически сравниваем реляционные и нереляционные базы данных, то есть разные структуры хранения данных.

6. Как вы сравниваете MongoDB, CouchDB и CouchBase?

И MongoDB, и CouchDB являются документно-ориентированными базами данных. И MongoDB, и CouchDB являются наиболее типичными представителями баз данных NoSQL с открытым исходным кодом. за исключением того, что все это хранится как документ

Больше ничего общего у них нет. MongoDB и CouchDB имеют много различий в реализации модели данных, интерфейсах, хранилище объектов и методах репликации.

7. Что делает MongoDB лучшей базой данных NoSQL?

Следующие функции делают MongoDB лучшей базой данных NoSQL:

  • файлово-ориентированный
  • высокая производительность
  • высокая доступность
  • Простота расширения
  • Богатый язык запросов

8. Возникнут ли проблемы при воспроизведении журнала, если запись неполная (например, произошел сбой на полпути)?

Каждая операция записи журнала (группы) является последовательной, она не воспроизводится во время восстановления, если она не завершена.

9. Какова роль анализаторов в MongoDB?

MongoDB включает в себя анализатор базы данных, который отображает характеристики производительности каждой операции в базе данных. С помощью этого профилировщика вы можете найти запросы (или записи), которые выполняются медленнее, чем ожидалось; используя эту информацию, вы можете, например, определить, нужно ли добавлять индекс.

10. Что такое пространство имен?

MongoDB хранит объекты BSON в коллекции. Имя базы данных и имя кластера, соединенные точкой, называются пространствами имен.

11. Если пользователь удаляет атрибут объекта, удаляется ли этот атрибут из уровня хранения?

Да, пользователь удаляет свойство, и объект повторно сохраняется (re-save()).

12. Могу ли я использовать функцию журнала для безопасного резервного копирования?

да.

13. Допускается ли null?

Для членов объекта, да. Однако пользователи не могут добавлять нулевые значения в коллекцию базы данных, поскольку нулевые значения не являются объектами. Однако пользователь может добавить пустой объект {}.

14. Операция обновления немедленно синхронизируется с диском?

Нет, запись на диск по умолчанию откладывается. Записи могут достигать диска через две или три секунды (по умолчанию в течение 60 секунд). Например, если база данных получает тысячу операций, увеличивающих объект за секунду, диск очищается только один раз. (обратите внимание, что хотя опция fsync действительна в командной строке и через getLastError_old)

15. Как выполнить транзакцию/блокировку?

MongoDB не использует традиционные блокировки или сложные транзакции с откатами, потому что она разработана, чтобы быть легкой, быстрой и предсказуемой по производительности. Его можно сравнить с автоматическим режимом фиксации MySQLMylSAM. Оптимизация поддержки транзакций повышает производительность, особенно в системе, которая может проходить через несколько серверов.

16. Почему мой файл данных такой большой?

MongoDB агрессивно предварительно выделяет зарезервированное пространство, чтобы предотвратить фрагментацию файловой системы.

17. Сколько времени требуется для включения аварийного резервного копирования?

С момента, когда резервная база данных объявит первичную базу данных, до выбора резервной базы данных в качестве новой первичной базы данных потребуется от 10 до 30 секунд. Операции с первичной базой данных в течение этого периода завершатся с ошибкой, в том числе

Операции записи и строго согласованного чтения. Однако вы также можете выполнять в конечном итоге непротиворечивые запросы (в режиме slaveOk) ко второй базе данных даже в это время.

18. Что такое мастер или первичный?

Это основной узел/участник в текущем резервном кластере (наборе реплик), отвечающий за обработку всех операций записи. В резервном кластере, когда происходит отработка отказа, дополнительный член становится основным.

19. Что такое вторичное или ведомое?

Seconday копирует соответствующие операции из текущего первичного. Для этого он отслеживает оплог репликации (local.oplog.rs).

20. Должен ли я вызывать getLastError, чтобы убедиться, что запись действительна?

Не нужно. Неважно, вызываете ли вы getLastError (он же «Безопасный режим»), сервер делает то же самое. Вызов getLastError предназначен только для подтверждения того, что операция записи успешно завершена. Конечно, часто хочется получить подтверждение, но безопасность и валидность операции записи от этого не зависят.

21. Должен ли я запускать кластерную сегментированную или некластеризованную сегментированную среду MongoDB?

Для простоты разработки мы рекомендуем запускать среду MongoDB без сегментирования, если только одного сервера недостаточно для вашего исходного набора данных. Переход от некластерного сегментирования к кластерному сегментированию выполняется без проблем, поэтому нет необходимости рассматривать сегментирование, если ваш набор данных не очень велик.

22. Как работают шардинг и репликация?

Каждый сегмент представляет собой логическую коллекцию секционированных данных. Шард может состоять из одного сервера или кластера, мы рекомендуем использовать кластер для каждого шарда.

23. Когда данные будут расширены до нескольких сегментов?

Разделение MongoDB основано на диапазоне. Таким образом, все объекты в коллекции хранятся в чанке. Только когда есть более одного блока, будут варианты для нескольких осколков для получения данных. Теперь размер каждого блока по умолчанию составляет 64 МБ, поэтому вам нужно как минимум 64 МБ для реализации миграции.

24. Что происходит, когда я пытаюсь обновить документ в переносимом фрагменте?

Обновления происходят немедленно в старом сегменте, а затем изменения реплицируются в новом сегменте перед передачей права собственности.

25. Что произойдет, если я инициирую запрос, когда сегмент не работает или работает очень медленно?

Если сегмент остановлен, запрос вернет ошибку, если для запроса не установлен параметр «Частично». Если сегмент отвечает медленно, MongoDB будет ждать его ответа.

26. Могу ли я удалить старые файлы в каталоге moveChunk?

Нет проблем, эти файлы являются временными файлами, созданными при балансировке сегмента. После завершения этих операций связанные с ними временные файлы также следует удалить. Однако в настоящее время очистка выполняется вручную, поэтому внимательно рассмотрите возможность освобождения места для этих файлов.

27. Как проверить ссылки, которые использует Mongo?

db._adminCommand("connPoolStats");

28. Если операция перемещения блока (moveChunk) не удалась, нужно ли вручную очищать некоторые из переданных документов?

Нет, операция перемещения непротиворечива и детерминирована; после сбоя операция перемещения будет повторяться непрерывно; по завершении данные появятся только в новом осколке (осколке).

29. Если я использую репликацию, могу ли я использовать ведение журнала для одной части и не использовать для других?

Может.

30. Что происходит при обновлении документа в переносимом фрагменте?

Обновления происходят немедленно в старом фрагменте, а затем изменения реплицируются в новом сегменте, прежде чем право собственности будет передано.

31. MongoDB строит индекс для A:{B,C}. Будет ли запрос A:{B,C} и A:{C,B} использовать индекс?

Нет, индексы будут использоваться только для A:{B,C}.

32. Что происходит, когда инициируется запрос, если шард остановлен или работает очень медленно?

Если сегмент остановлен, запрос возвращает ошибку, если для запроса не установлен параметр «Частично». Если сегмент отвечает медленно, MongoDB будет ждать его ответа.

33. Поддерживает ли MongoDB хранимые процедуры? Если поддерживается, то как его использовать?

MongoDB поддерживает хранимые процедуры, написанные на javascript и хранящиеся в таблице db.system.js.

34. Как понять механизм GridFS в MongoDB и почему MongoDB использует GridFS для хранения файлов?

GridFS — это спецификация файлов для хранения больших файлов в MongoDB. Использование GridFS может разделить большие файлы на несколько небольших документов, чтобы мы могли эффективно сохранять большие документы и решить проблему ограниченных объектов BSON.

35. Что такое база данных NoSQL? В чем разница между NoSQL и RDBMS? Когда использовать и не использовать базу данных NoSQL?

NoSQL — это нереляционная база данных, NoSQL = не только SQL.

Реляционные базы данных используют структурированные данные, тогда как NoSQL хранит данные в виде пар ключ-значение.

При работе с неструктурированными/полуструктурированными большими данными, при расширении в горизонтальном направлении, при работе с динамически увеличивающимися элементами данных в любое время приоритет может отдаваться базе данных NoSQL.

При рассмотрении зрелости базы данных, поддержки, аналитики и бизнес-аналитики, управления и профессионализма приоритет следует отдавать реляционным базам данных.

36. Поддерживает ли MongoDB хранимые процедуры? Если поддерживается, то как его использовать?

MongoDB поддерживает хранимые процедуры, написанные на javascript и хранящиеся в таблице db.system.js.

37. Как понять механизм GridFS в MongoDB и почему MongoDB использует GridFS для хранения файлов?

GridFS — это спецификация файлов для хранения больших файлов в MongoDB. Использование GridFS может разделить большие файлы на несколько небольших документов, чтобы мы могли эффективно сохранять большие документы и решить проблему ограниченных объектов BSON.

38. Почему файл данных MongoDB такой большой?

MongoDB использует предварительно выделенное пространство для предотвращения фрагментации файлов.

39. Что происходит, когда обновляется документ в переносимом фрагменте?

Обновления происходят немедленно в старом фрагменте, а затем изменения реплицируются в новом сегменте, прежде чем право собственности будет передано.

40. MongoDB строит индекс для A:{B,C}. Будет ли запрос A:{B,C} и A:{C,B} использовать индекс?

Нет, индексы будут использоваться только для A:{B,C}.

41. Что происходит, когда инициируется запрос, если шард остановлен или работает очень медленно?

Если сегмент остановлен, запрос возвращает ошибку, если для запроса не установлен параметр «Частично». Если сегмент отвечает медленно, MongoDB будет ждать его ответа.

42. Какова роль анализаторов в MongoDB?

Профилировщик — это профилировщик базы данных, который объясняет характеристики производительности каждой операции. Возможно, поиск более медленных, чем ожидалось, операций с помощью профилировщика

43. Если пользователь удаляет атрибут объекта, удаляется ли этот атрибут из уровня хранения?

Да, пользователь удаляет свойство, и объект повторно сохраняется (re-save()).

44. Можно ли использовать журнал для безопасного резервного копирования?

да

45. Операция обновления немедленно синхронизируется с диском?

Как правило, операции записи на диск выполняются лениво.

46. ​​Как выполнить транзакцию/блокировку?

Поскольку mongodb разработан, чтобы быть легким и высокопроизводительным, в нем нет традиционной блокировки и отката сложных транзакций.

47. Что такое мастер или первичный?

Текущий резервный кластер является основным узлом, отвечающим за все операции записи.В кластере, когда основной узел (главный) выходит из строя, другой участник становится ведущим

48. Роль getLastError

Вызовите getLastError, чтобы подтвердить, успешно ли была отправлена ​​текущая операция записи.

49. Как работают шардинг и репликация?

Осколок может состоять из одного сервера или кластера, рекомендуется использовать кластер

50. Когда данные будут расширены до нескольких сегментов?

Шардирование MongoDB основано на регионах, поэтому все объекты коллекции помещаются в один и тот же блок, только когда блоков больше одного, будут варианты для нескольких осколков для получения данных.

51. Что происходит, когда я пытаюсь обновить документ в переносимом фрагменте?

Старый сегмент обновляется непосредственно перед тем, как изменения будут реплицированы на новый сегмент до передачи права собственности.

52. Как проверить ссылки, которые использует Mongo?

db._adminCommand("connPoolStats");

53. Введение в структуру mongodb

Объекты, хранящиеся в дизайне базы данных bson, JSON-подобном двоичном файле, состоящем из пар ключ-значение.

54. Общая структура базы данных

Пара "ключ-значение" - "Документ" - "Сборник" - "База данных"

55. На каком языке написана MongoDB?

MongoDB написана на C++, и популярная база данных с открытым исходным кодом MySQL также разработана на C++. Выпущенный в 1983 году, C++ является широко используемым языком программирования. Это болезненный язык программирования, который поддерживает несколько режимов программирования.

56. В чем преимущества MongoDB

  • Документоориентированное хранилище: сохраняйте данные в документах в формате JSON.
  • Любое свойство может быть проиндексировано.
  • Репликация и высокая масштабируемость.
  • Автоматический шардинг.
  • Богатая функция запроса.
  • Быстрые мгновенные обновления.
  • Профессиональная поддержка от MongoDB.

57. Что такое коллекция

Коллекция — это коллекция документов MongoDB. Это эквивалентно концепции таблицы в реляционной базе данных (RDBMS). Коллекции находятся в отдельной базе данных. Несколько документов в коллекции могут иметь несколько разных полей. Как правило, все документы в коллекции служат одной или связанной цели.

58. Что такое документ

Документ состоит из набора ключевых значений. Документы являются динамическими, что означает, что документы в одной коллекции могут не иметь одинаковых полей и структуры. Каждая запись в таблице реляционной базы данных эквивалентна документу в MongoDB.

59. Что такое "монгод"

mongod — это основной процесс, который обрабатывает систему MongoDB. Он обрабатывает запросы данных, управляет хранилищем данных и выполняет операции фонового управления. Когда мы запускаем команду mongod, это означает, что процесс MongoDB запускается и работает в фоновом режиме.

60. Что такое параметр "mongod"

  • Передайте путь к хранилищу базы данных, по умолчанию "/data/db"
  • Номер порта по умолчанию «27017».

61. Что такое «монго»

Это инструмент командной строки для подключения к конкретному экземпляру mongod. Когда мы запускаем команду mongo без аргументов, она будет подключаться с использованием номера порта по умолчанию и локального хоста.

62. Какая команда MongoDB может переключать базы данных

MongoDB использует метод использования + имя базы данных для создания базы данных. use создает новую базу данных и возвращает эту базу данных, если она существует.

63. Что такое нереляционная база данных

Нереляционная база данных — это общий термин, отличающий ее от традиционной реляционной базы данных. Отличительной особенностью нереляционных баз данных является то, что они не используют SQL в качестве языка запросов, а для хранения данных не требуется определенной схемы таблиц. Он используется для больших данных, веб-приложений и т. д. благодаря простому дизайну и очень хорошей производительности.

64. Какие типы нереляционных баз данных существуют?

  • - Магазин ключей-значений Например: Amazon S3
  • Диаграмма Например: Neo4J
  • Хранение документов Например: MongoDB
  • Хранилище на основе столбцов Пример: Cassandra

65. Зачем использовать MongoDB?

  • Простая архитектура
  • никаких сложных соединений
  • Возможность глубоких запросов, MongoDB поддерживает динамические запросы.
  • легко отлаживать
  • легко расширить
  • Нет необходимости преобразовывать/сопоставлять объекты приложения с объектами базы данных
  • Используйте внутреннюю память в качестве рабочей области хранилища для более быстрого доступа к данным.

66. В каких сценариях использовать MongoDB

  • Большие данные
  • Система управления контентом
  • Мобильные приложения
  • управление данными

67. Что означает пространство имен в MongoDB?

Внутри MongoDB есть механизм предварительного выделения пространства, и каждый предварительно выделенный файл заполняется 0.

Каждый раз, когда файл данных выделяется заново, его размер в два раза превышает размер предыдущего файла данных, и каждый файл данных имеет максимальный размер 2G.

Каждой коллекции и индексу MongoDB соответствует пространство имен, метаданные этих пространств имен сосредоточены в 16M файлах *.ns, и каждое имя занимает в среднем около 628 байт, что является верхней границей пространства имен всей базы данных, равной 24000. .

Если у каждой коллекции есть индекс (например, индекс _id по умолчанию), можно создать до 12 000 коллекций. Чем больше индексов, тем меньше коллекций может быть создано. В то же время, если наборов слишком много, некоторые операции также будут выполняться медленно.

Чтобы создать больше коллекций, MongoDB также поддерживает это, просто добавьте параметр «--nssize» при запуске, чтобы файл пространства имен, соответствующий базе данных, мог стать больше, чтобы сохранить больше имен. Этот файл пространства имен (файл .ns) может иметь размер до 2G.

Экстенты, соответствующие каждому пространству имен, не обязательно являются непрерывными. Как и в случае с ростом файла данных, размер экстента, соответствующего каждому пространству имен, увеличивается с увеличением количества распределений. Цель состоит в том, чтобы сбалансировать потраченное впустую пространство пространств имен с сохранением непрерывности данных пространства имен.

Одно пространство имен, о котором следует знать, — это $freelist. Это пространство имен используется для записи экстентов, которые больше не используются (коллекции или индексы, которые удалены). Всякий раз, когда пространству имен необходимо выделить новый экстент, оно сначала проверяет, есть ли экстент подходящего размера в $freelist, и освобождает свободное место на диске, если оно есть.

68. Какие языки поддерживают MongoDB?

C, C++, C#, Java, Node.js, Perl, Php и т. д.

69. Как создать новую базу данных в MongoDB

MongoDB использует метод использования + имя базы данных для создания базы данных. use создает новую базу данных и возвращает эту базу данных, если она существует.

70. Как просмотреть список баз данных в MongoDB

Используйте команду "показать БД"

71. Что означает шардинг в MongoDB?

Шардинг — это горизонтальное разделение данных на разные физические узлы. Когда данные приложения становятся все больше и больше, объем данных также будет становиться все больше и больше. Когда объем данных растет, есть шанс, что одна машина не сможет хранить данные или иметь приемлемую скорость чтения и записи. Используя технологию сегментирования, можно добавить больше машин, чтобы справиться с увеличением объема данных и требованиями операций чтения и записи.

72. Как просмотреть соединение с помощью MongoDB Sharding - Руководство по MongoDB 21. Как просмотреть соединение с помощью MongoDB

Используйте команду "db.adminCommand("connPoolStats")"

>db.adminCommand(“connPoolStats”)

73. Что такое копирование

Репликация — это процесс синхронизации данных с несколькими серверами, повышение доступности данных за счет хранения нескольких копий данных на нескольких серверах. Репликация может обеспечить безопасность данных, аварийное восстановление, обслуживание без простоев (например, резервное копирование, переиндексация, сжатие) и распределенное чтение данных.

74. Как вставить документ в коллекцию в MongoDB

Чтобы вставить данные в коллекцию MongoDB, используйте методы insert() или save().

>db.collectionName.insert({"key":"value"})
>db.collectionName.save({"key":"value"})

75. Как удалить базу данных в MongoDB Методы сбора 24. Как удалить базу данных в MongoDB

Команда MongoDB dropDatabase() используется для удаления существующей базы данных.

>db.dropDatabase()

76. Как создать коллекцию в MongoDB.

В MongoDB для создания коллекции используется метод db.createCollection(name, options). options — это документ, используемый для указания конфигурации коллекции.

>db.createCollection("collectionName")db.createCollection() - MongoDB Manual>db.createCollection("

77. Как просмотреть уже созданную коллекцию в MongoDB

Вы можете использовать show collections для просмотра списка всех коллекций в текущей базе данных.

>show collections

78. Как удалить коллекцию в MongoDB

MongoDB использует db.collection.drop() для удаления коллекций в базе данных.

>db.CollectionName.drop()

79. Зачем использовать анализаторы в MongoDB

Профилировщик базы данных собирает информацию о выполнении команд базы данных для работающего экземпляра mongod. Он включает в себя команды добавления, удаления, изменения и проверки, а также команды настройки и управления. Профилировщик запишет все собранные данные в коллекцию system.profile, ограниченную коллекцию в базе данных администратора. Профилировщик отключен по умолчанию, и вы можете включить его для каждой базы данных или для каждого экземпляра.

80. Поддерживает ли MongoDB отношения первичного ключа с внешним ключом?

По умолчанию MongoDB не поддерживает отношения между первичным ключом и внешним ключом. Использование API самого Mongodb требует жесткого кодирования для реализации ассоциаций внешних ключей, что не интуитивно понятно и сложно.

81. Какие типы данных поддерживает MongoDB

Строка, целое число, двойное число, логическое значение, объект, идентификатор объекта, массивы, минимальные и максимальные ключи, дата и время, код, регулярное выражение и т. д.

82. Зачем использовать тип данных «Код» в MongoDB

Тип «Код» используется для хранения кода JavaScript в документе.

83. Зачем использовать тип данных «Регулярное выражение» в MongoDB

Тип «Регулярное выражение» используется для хранения регулярных выражений в документе.

84. Зачем использовать тип данных «Идентификатор объекта» в MongoDB

Тип данных «ObjectID» используется для хранения идентификатора документа.

85. Как вставить документ в коллекцию

Чтобы вставить данные в коллекцию MongoDB, используйте методы insert() или save().

>db.collectionName.insert({"key":"value"})
>db.collectionName.save({"key":"value"})

86. Из каких частей состоит «ObjectID»

Он состоит из четырех частей: отметки времени, идентификатора клиента, идентификатора клиентского процесса и трехбайтового инкрементного счетчика.

_id — это 12-байтовое шестнадцатеричное число, гарантирующее уникальность каждого документа. При вставке документа необходимо указать _id . Если вы его не предоставите, MongoDB предоставит уникальный идентификатор для каждого документа. Первые 4 байта _id представляют собой текущую метку времени, следующие 3 байта представляют собой номер идентификатора машины, следующие 2 байта представляют собой идентификатор процесса сервера MongoDB, а последние 3 байта представляют собой добавочное значение.

87. Что такое индекс в MongoDb

Индексы используются для эффективного выполнения запросов. Без индексов MongoDB будет сканировать все документы во всей коллекции. Такое сканирование неэффективно и требует обработки больших объемов данных. Индекс — это специальная структура данных, которая содержит небольшой фрагмент данных в удобной для просмотра форме. Индекс может хранить значения определенного поля или набора полей и упорядочивать значения полей в порядке, указанном индексом.

88. Как добавить индекс

Используйте db.collection.createIndex() для создания индекса в коллекции.

>db.collectionName.createIndex({columnName:1})

89. Какой метод можно использовать для форматирования выходного результата

Используйте метод pretty() для форматирования результатов отображения.

>db.collectionName.find().pretty()

90. Как перебирать документы в коллекции с помощью условий «И» или «ИЛИ»

В методе find(), если вы передаете несколько ключей и разделяете их запятыми ( , ), тогда MongoDB будет рассматривать это как условие AND.

>db.mycol.find({key1:value1, key2:value2}).pretty()

Чтобы запрашивать документы на основе условий ИЛИ, вы можете использовать ключевое слово $or.

>db.mycol.find(
 {
  $or: [
    {key1: value1}, {key2:value2}
  ]
 }
).pretty()

91. Как обновить данные в MongoDB

Оба метода update() и save() могут использоваться для обновления документов в коллекции. Метод update() обновляет значение в существующем документе, а метод save() заменяет существующий документ документом, переданным методу.

92. Как удалить документ

MongoDB использует метод remove() для удаления документов из коллекции. Он имеет 2 необязательных параметра:

  • критерии удаления: (Необязательно) Критерии удаления документов.
  • justOne: (необязательно) Если установлено значение true или 1, будет удален только один документ.
>db.collectionName.remove({key:value})

93. Как сортировать в MongoDB

Сортировка документов в MongoDB достигается с помощью метода sort(). Метод sort() может передавать некоторые параметры, чтобы указать поле для сортировки, и использовать 1 и -1 для указания порядка.

порядок, где 1 означает восходящий порядок, а -1 означает убывающий.

>db.connectionName.find({key:value}).sort({columnName:1})

94. Что такое агрегация

Агрегированные операции обрабатывают записи данных и возвращают вычисленные результаты. Операции агрегирования объединяют значения из нескольких документов, выполняют различные операции над группами данных и возвращают один результат. Это эквивалентно комбинированной группе count(*) в SQL. Для агрегатных операций в MongoDB следует использовать метод агрегата().

>db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)

95. Что такое набор реплик в MongoDB

В MongoDB набор реплик состоит из набора экземпляров MongoDB, включая основной узел и несколько вторичных узлов.Все данные клиента MongoDB записываются на основной узел (первичный), а вторичный узел синхронно записывает данные с основного узла. для поддержки всех наборов реплик. Те же данные хранятся во внутреннем хранилище для повышения доступности данных.

Наконец

Добро пожаловать в официальный аккаунт: Программист в погоне за ветром, ответьте 003, чтобы получить набор из 200 страниц последнего руководства по вопросам собеседования по Java в 2020 году.