LinuxWindowsАдминистрированиеПрограммированиеСофт и ОС

MongoDB и Mongoose: подключение, схемы, модели и базовые операции в Node.js

Mongoose — ODM-библиотека для Node.js, которая добавляет поверх MongoDB схемы, модели, валидацию и удобный API. Она полезна, когда приложению нужна предсказуемая структура документов и единый слой доступа к данным.

Подключение

import mongoose from 'mongoose';

await mongoose.connect(process.env.MONGODB_URI);

Строку подключения не стоит хранить прямо в исходном коде. Используйте переменные окружения или менеджер секретов.

Schema и Model

const userSchema = new mongoose.Schema({
  email: { type: String, required: true, trim: true, lowercase: true },
  name: { type: String, required: true },
  createdAt: { type: Date, default: Date.now }
});

const User = mongoose.model('User', userSchema);

Schema описывает ожидаемые поля и правила, а Model используется для запросов и записи документов.

CRUD

const user = await User.create({ email: 'user@example.com', name: 'Alex' });
const found = await User.findOne({ email: 'user@example.com' });
await User.updateOne({ _id: user._id }, { $set: { name: 'Alexey' } });
await User.deleteOne({ _id: user._id });

Валидация не заменяет ограничения базы

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

Не загружайте лишние данные

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

Когда Mongoose не обязателен

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *