Използване на MongoDB
Тази статия съдържа инструкции за използване на наличния MongoDB сървър за бази данни на нашите сървъри, както и за инсталиране на собствен MongoDB сървър чрез нашата платформата за уеб приложения (WebApps).
Важно: Ако нямате раздел "Уеб приложения" във Вашия Контролен панел, тогава инструкциите в тази статия не са валидни за Вашия акаунт и сървър. Можете да ни пишете за повече информация и съдействие.
"SSH достъп" и "Мрежови инструменти" трябва да са активирани за Вашия акаунт през раздел "SSH Достъп" на Контролния панел.
Свържете към Вашия акаунт чрез SSH и следвайте стъпките за избрания от Вас метод за използване/инсталиране на MongoDB.
Използване на наличния по подразбиране MongoDB сървър
Можете да използвате "mongod" пакета на нашите сървъри, за да използвате MongoDB. По подразбиране MongoDB използва порт "27017" и съхранява данните си в директорията "/data/db". Тъй като тези порт и директория не са достъпни за хостинг акаунтите, при използване на "mongod" пакета трябва да се използват отделни порт ("port") и директория за съхранение на данните ("dbpath"). За целта трябва да създадете директория, където да съхранявате MongoDB данните (напр. в директорията ~/private/mongodb/data/db):
mkdir -pv /home/$USER/private/mongodb/data/db
След това създайте WebApps проект със следната sureapp CLI команда:
sureapp project create \
--engine "custom" \
--engine-version "-" \
--release-dir "/home/$USER/private/mongodb/" \
--start-cmd "mongod --dbpath /home/$USER/private/mongodb/data/db --port \$PORT" \
mongodb
Инсталиране на собствен MongoDB сървър
Ако искате Вашият проект да използва версия на MongoDB, която е различна от инсталираната по подразбиране на сървъра, тогава можете да следвате тези стъпки:
- Отидете в директорията, в която желаете да инсталирате MongoDB (напр. "~/.local/bin)
cd /home/$USER/.local/bin
- Изтеглете файловете за желаната версия на MongoDB от официалната страница. Трябва да изберете версията на MongoDB (напр. 7.0.12) , "Debian 11.0 x64" за платформа, "tgz" за пакет и да кликнете на бутона за копиране на линка (напр. "https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-debian11-7.0.12.tgz"). Можете да изтеглите файла на сървъра със следната "curl" команда:
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-debian11-7.0.12.tgz
- Разархивирайте изтегления файл с командата "tar":
tar -zxvf mongodb-linux-x86_64-debian11-7.0.12.tgz
- Копирайте mongosh файловете в директорията на MongoDB (напр. "~/.local/bin).
cp -R -n mongodb-linux-x86_64-debian11-7.0.12/bin/* /home/$USER/.local/bin
- Уверете се, че пътят до MongoDB файловете е добавен в променливата "PATH". Можете да направите това, като добавите следния ред с код в ".bashrc" файла на Вашия акаунт (~/.bashrc):
export PATH=$HOME/.local/bin:$PATHАко MongoDB файловете се намират в друга директория, то я добавете в променливата "PATH":
export PATH=<mongodb-install-directory>/bin:$PATH
- Създайте директорията на уеб приложението, където ще използвате MongoDB (напр. "~/private/mongodb"). В тази директория, трябва да създадете директория data/db (напр. "~/private/mongodb/data/db"):
mkdir -pv /home/$USER/private/mongodb/data/db
- Създайте WebApps проект със следната sureapp CLI команда:
sureapp project create \
--engine "custom" \
--engine-version "-" \
--release-dir "/home/$USER/private/mongodb/" \
--start-cmd "/home/$USER/.local/bin/mongod --dbpath /home/$USER/private/mongodb/data/db --port \$PORT" \
mongodb
Важно: Заместете "/home/$USER/.local/bin/mongod" с пълния път до Вашия собствен MongoDB сървър.
Настройване на WebApps проект
Отворете раздел "Уеб приложения" във Вашия хостинг Контролен панел и кликнете на бутона с иконка на молив (
) до проекта "mongodb". Изберете домейна и поддомейна чрез съответните падащи менюта в показалия се екран.

Стартирайте приложението чрез бутона с иконка на червен кръг (
) до него.
Посетете линка от колоната "Адрес" за проекта, където трябва да видите следното съобщение:
It looks like you are trying to access MongoDB over HTTP on the native driver port.
Ограничаване на достъпа
Можете да включите автентикация за MongoDB, с което да ограничите достъпа до базите Ви данни. Ако сте активирали ограничението на достъпа за MongoDB, потребителите ще могат да изпълняват само действията, които са разрешени за техните роли. Можете да следвате тези стъпки, за да добавите администраторски потребител за MongoDB без ограничение на достъпа и след това да ограничите достъпа:
- Свържете се с MongoDB чрез mongosh:
mongosh --port $PORT
Бележка: Инструмента "mongosh" за управление на MongoDB през командния ред е заместистел на "mongo" инструмента, който е спрян от поддръжка от MongoDB v5.0.
- Създайте нов потребител с администраторски права:
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Важно: Заменете myUserAdmin и abc123 с потребителското име и паролата, които желаете да използвате.
- Излезте от mongosh.
- Променете стартовата команда за MongoDB приложението Ви, така че да съдържа опцията "--auth" за активиране на контрол на достъпа. Ако използвате наличния по подразбиране MongoDB сървър, можете да промените стартовата команда така:
sureapp project modify\
--start-cmd "mongod --auth --dbpath /home/$USER/private/mongodb/data/db --port \$PORT" \
mongodb
или така, ако използвате собствена инсталация на MongoDB сървър:
sureapp project modify\
--start-cmd "/home/$USER/.local/bin/mongod --auth --dbpath /home/$USER/private/mongodb/data/db --port \$PORT" \
mongodb
- Рестартирайте MongoDB приложението с тази команда:
sureapp service manage --disable mongodb && sureapp service manage --enable mongodb
Свързване с MongoDB база данни
Стандартния формат за URI връзка с MongoDB база данни изглежда така:
mongodb://[username:password@]host1[:port1][,...hostN[:portN]]][/[database][?options]]
Следователно за връзка с базата данни, дадена за пример в тази статия, можете да използвате следния низ:
mongodb://myUserAdmin:abc123@localhost:16250/admin