MongoDB
Полезные ссылки
Сервер
Установка сервера
docker volume create mongodata docker run --name mongodb \ -d \ --restart=unless-stopped \ -v mongodata:/data/db \ -p 127.0.0.1:27017:27017 \ -e MONGODB_INITDB_ROOT_USERNAME=user \ -e MONGODB_INITDB_ROOT_PASSWORD=secret \ mongodb/mongodb-community-server:latest
Установка и настройка клиeнта mongosh
wget -qO- https://www.mongodb.org/static/pgp/server-7.0.asc | sudo tee /etc/apt/trusted.gpg.d/server-7.0.asc sudo apt-get install gnupg echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list sudo apt-get update sudo apt-get install -y mongodb-mongosh mongosh --version
Подключение к БД
mongosh "mongodb://localhost:27017" # --- подключаемся с аутентификацией mongosh "mongodb://localhost:27017" --username user --authenticationDatabase admin # --- подключаемся с аутентификацией к БД my_database с аутентификацией mongosh "mongodb://localhost:27017/my_database" --username user --authenticationDatabase admin # --- подключаемся с параметрами в строке подключения mongosh "mongodb://user:secret@localhost:27017/my_database?authSource=admin"
Работаем в mongosh
Команды
# --- переключение БД use database
Агрегация
# --- на входе - коллекция документов {filename: '/foo/bar'} # на выходе - один документ {filenames: ['/foo/bar1', '/foo/bar2', ...]} db.parsedFiles.aggregate([ { $group: { _id: null, filenames: { $addToSet: "$filename" } } }, { $project: { _id: 0, filenames: 1 } }]); # --- преобразование типов # на входе - {age: "25"} # на выходе - {age: 25} db.students.aggregate([{$addFields: {age: {$toInt: "$age"}}}, {$out: "students"}])
Установка и настройка клиента Compass
sudo dpkg -i mongodb-compass_1.39.0_amd64.deb mongodb-compass