Этот вопрос проверяет понимание сценариев применения MongoDB, чтобы оценить, умеет ли разработчик выбирать подходящую базу данных для конкретных задач.
MongoDB — это документоориентированная NoSQL база данных, которая хранит данные в виде гибких JSON-подобных документов (BSON). Её ключевая особенность — отсутствие жёсткой схемы, что позволяет легко адаптировать структуру данных под меняющиеся требования приложения.
// Подключение и вставка документа с гибкой структурой
const { MongoClient } = require('mongodb');
async function example() {
const client = new MongoClient('mongodb://localhost:27017');
await client.connect();
const db = client.db('shop');
const products = db.collection('products');
// Документы могут иметь разные поля
await products.insertMany([
{
name: 'Laptop',
price: 999,
attributes: { cpu: 'i7', ram: '16GB' },
tags: ['electronics', 'computing']
},
{
name: 'T-Shirt',
price: 25,
color: 'blue',
sizes: ['S', 'M', 'L'] // Другой набор полей
}
]);
// Поиск с использованием вложенных полей
const expensiveElectronics = await products.find({
price: { $gt: 500 },
'attributes.cpu': 'i7'
}).toArray();
console.log(expensiveElectronics);
await client.close();
}
example();Вывод: Используйте MongoDB, когда вам нужна быстрая разработка с часто меняющейся моделью данных, работа с иерархическими или неструктурированными данными, а также горизонтальное масштабирование для больших нагрузок. Для приложений, требующих сложных транзакций ACID и строгих связей между таблицами (например, финансовые системы), реляционные базы данных (PostgreSQL, MySQL) часто являются более подходящим выбором.