Ответ
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 и аналитика в реальном времени.