MongoDB
Установка
Качаем архив с официального сайта
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu-tarball/
Распаковываем архив
tar -zxvf mongodb-linux-*-4.4.1.tgz
Настройка директории с базой данных
sudo mkdir -p /var/lib/mongo
sudo chown `whoami` /var/lib/mongo
Настройка директории с логами
sudo mkdir -p /var/log/mongodb
sudo chown `whoami` /var/log/mongodb
Запуск серввера
mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log
Запуск оболочки
Работа
Создание и начало работы с db
> use tutorial
switched to db tutorial
Вставка записи
> db.users.insert(
{
"name": "Ivan"
}
)
WriteResult({ "nInserted" : 1 })
Получение записей
> db.users.find();
{ "_id" : ObjectId("5fa944f360abed1bbd995c8d"), "name" : "Ivan" }
Запрос полей
> db.users.find(
{
city: "Moscow"
},
{
name: 1
}
);
Количество записей в коллекции
Обновление записей $set
> db.users.update(
{
"name": "Ivan"
},
{
$set:{
country:"Russia"
}
}
);
> db.users.update(
{
"name": "Ivan"
},
{
$set: {
favourites: {
movies: ["Casablanca"]
}
}
}
);
Удаление полей $unset
> db.users.update(
{
"city": "Moscow"
},
{
$unset: {
city: 1
}
}
)
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
Добавление значений в список $addToSet/$push
> db.users.update(
{
name: "A"
},
{
$addToSet: {
"favourites.movies": "Rambo"
}
}
)
> db.users.update(
{
name: "A"
},
{
$push: {
"favourites.movies":"Rambo"
}
}
)
Удаление записей
> db.users.remove(
{
name: "A"
}
)
Удаление коллекций
Добавление записей
> for (var i = 0; i < 200000; i++) {
... db.numbers.save({num:i})
... }
Поиск в диапазоне значений
> db.numbers.find({$gt:199995, $lt:199999})
Простой Индекс
Профиль запроса
> db.numbers.find(
{
num: {
$gt: 199995
}
}
).explain()
Создание индекса
> db.numbers.ensureIndex({num:1})
Получение индексов над коллекцией
> db.numbers.getIndexes()
Информация об объектах
Список баз данных и коллекций
> show dbs
> show collections
Детальная информация по базе данных или коллекции
> db.stats()
> db.users.stats()
Команды "под капотом"
Информация по базе данных
> db.stats()
> db.runCommand({dbstats:1})
> db.$cmd.findOne({dbstats:1})
Информация по коллекции
> db.users.stats()
> db.runCommand({collstats:"users"})
> db.$cmd.findOne({collstats:"users"})