Что такое MongoDB?

«Что такое MongoDB?» — вопрос из категории Базы данных, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

MongoDB — это документоориентированная NoSQL СУБД с открытым исходным кодом. Она хранит данные в виде гибких JSON-подобных документов в формате BSON (Binary JSON).

Ключевые особенности:

  • Гибкая схема данных: Документы в одной коллекции могут иметь разную структуру.
  • Масштабируемость: Поддержка горизонтального масштабирования через шардинг (сегментирование).
  • Высокая производительность: Оптимизирована для операций чтения и записи больших объемов данных.
  • Мощный язык запросов: Поддерживает сложные запросы, агрегации, индексы и с версии 4.0 — многодокументные ACID-транзакции.
  • Репликация: Встроенная отказоустойчивость через наборы реплик.

Пример использования (Java Driver):

// Подключение
MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");
MongoDatabase database = mongoClient.getDatabase("test");
MongoCollection<Document> collection = database.getCollection("users");

// Создание и вставка документа
Document doc = new Document("name", "Иван")
        .append("age", 30)
        .append("city", "Москва");
collection.insertOne(doc);

// Поиск документа
Document myDoc = collection.find(eq("name", "Иван")).first();
System.out.println(myDoc.toJson());

Основные сценарии использования: Хранение больших объемов неструктурированных или полуструктурированных данных, каталоги продуктов, управление контентом, работа с данными IoT и аналитика в реальном времени.