Skip to content

Шпаргалка по командам MongoDB

MongoDB — это документоориентированная система управления базами данных с открытым исходным кодом, основанная на распределенном хранении файлов. В этой шпаргалке собраны основные операции в CLI mongosh.

Подключение и управление

Команда Описание
mongosh Подключиться к MongoDB на локальном порту
use <db_name> Переключиться или создать базу данных
db Показать текущую БД
show dbs Список всех баз данных
show collections Список всех коллекций в текущей БД
exit Выйти из Shell

Операции с коллекциями (DDL)

Команда Описание
db.createCollection("users") Создать коллекцию вручную
db.users.drop() Удалить указанную коллекцию
db.users.stats() Просмотр статистики коллекции
db.users.renameCollection("people") Изменить имя коллекции

Операции с документами (CRUD)

Insert

// Вставка документов
db.users.insertOne({ name: "Alice", age: 25 });
db.users.insertMany([{ name: "Bob" }, { name: "Charlie" }]);

Read

// Запрос документов
db.users.find().pretty(); 
db.users.find({ age: { $gt: 20 } }).sort({ age: 1 }).limit(10); 
db.users.findOne({ name: "Alice" }); 

Update

// Обновление документов
db.users.updateOne({ name: "Alice" }, { $set: { age: 26 } });
db.users.updateMany({ age: { $lt: 18 } }, { $set: { status: "minor" } });

Delete

// Удаление документов
db.users.deleteOne({ _id: ObjectId("...") });
db.users.deleteMany({ status: "inactive" });

Общие операторы

Type Operator Описание
Сравнение $gt, $gte, $lt, $lte, $ne Больше чем, Больше или равно, Меньше чем, Меньше или равно, Не равно
Логика $and, $or, $not, $nor И, Или, Не, Ни… ни…
Поле $set, $unset, $inc, $rename Установить значение, Удалить поле, Инкрементное обновление, Переименовать поле
Массив $push, $pop, $pull, $addToSet Добавить в массив, Извлечь из массива, Удалить совпадения, Добавить уникальное

Конвейер агрегации

db.orders.aggregate([
  { $match: { status: "A" } },
  { $group: { _id: "$cust_id", total: { $sum: "$amount" } } },
  { $sort: { total: -1 } }
]);

Управление индексами

Команда Описание
db.users.createIndex({ name: 1 }) Создать возрастающий индекс
db.users.createIndex({ email: 1 }, { unique: true }) Создать уникальный индекс
db.users.getIndexes() Показать все индексы
db.users.dropIndex("name_1") Удалить индекс