Шпаргалка по командам 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") |
Удалить индекс |