debian12 db

База данных через json

Установка

apt-get install gnupg curl -y
 
curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg --dearmor
 
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/debian bookworm/mongodb-org/8.2 main" | tee /etc/apt/sources.list.d/mongodb-org-8.2.list
 
apt update
apt install mongodb-org -y
 
systemctl  restart mongod.service
systemctl  start mongod.service
systemctl  enable mongod.service

Проверка

mongosh

Если всё ок, вы увидите приглашение к вводу test>

Основные команды

ДействиеКоманда в mongosh
Показать базыshow dbs
Создать/Перейти в БДuse myApp
Вставить документdb.users.insertOne({name: "Admin", level: 80})
Найти записьdb.users.find()

Файл конфигурации

На Debian конфиг лежит здесь: /etc/mongod.conf.

Две вещи, которые стоит знать сразу:

  1. Storage: По умолчанию данные лежат в /var/lib/mongodb.

  2. Network: По умолчанию bindIp стоит 127.0.0.1. Это значит, что база принимает подключения только внутри сервера.

Пример

mongosh
db.createUser({user:"admin", pwd:"He6Sq2", roles:[{role:"userAdminAnyDatabase", db:"admin"}]})

use galaxy_map
db.createUser({user:"admin", pwd:"Qf3Jt7", roles:[{role:"dbAdmin", db:"galaxy_map"}]})

db.auth('admin','Qf3Jt7')

Добавление в базу данных

db.objects.insertOne({
  name: "Центр",
  description: "Это центр галактики",
  photo_path: "/img/center.pmg",
  coords: {
    x: 1000,
    y: 1000
  },
  createdAt: new Date()
})

# Проверить
db.objects.find().pretty()

На сайте

apt install npm
cd /home/web
npm init -y
npm install mongoose express

Настроить Apache Proxy

Apache -> Node.js -> Сайт

a2enmod ssl proxy proxy_http