Как запустить скрипт mongo db на удаленном сервере?

Как запустить скрипт моно БД на удаленном сервере?

Я знаю, что ниже команда может быть использована для того же на локальном, как упомянуто здесь: Как выполнять команды Монго через сценарии оболочки?

mongo < yourFile.js

Я хочу запустить этот скрипт на удаленном сервере

MongoDB: URI: MongoDB: // пользователь:password@mongodb01d.mydomain.com:27017/ MYDB

3 ответа

Решение

С Монго на локальной машине:

 mongo -u user -p password mongodb01d.mydomain.com:27017/mydb yourFile.js

Это может быть немного не по теме, но если вы хотите / должны использовать Powershell из-за отсутствия параметров, вы можете запустить:

(Get-Content yourFile.js) | & mongo.exe 'mongodb://user:password@mongodb01d.mydomain.com:27017/mydb'

или

"print('Hello');print('Hello')" | & mongo.exe 'mongodb://user:password@mongodb01d.mydomain.com:27017/mydb'

или

& 'mongo.exe' 'mongodb://user:password@mongodb01d.mydomain.com:27017/mydb' --eval "print('Hello');print('Hello')"

У меня были трудности с $regex, поскольку Powershell интерпретировал его как переменную, поэтому мне пришлось использовать `$regex (с дополнительной обратной кавычкой).

Для автономной установки mongo (один узел)

      mongo -u <user> -p <password> mongodb://HOST_IP:27017/DB_NAME --eval 'MONGO_QUERY'

Пример:

mongo mongodb://127.0.0.1:27017/test --eval 'db.collection.count()'

Для кластерной настройки mongo (репликасет с несколькими узлами)

      mongo -u <user> -p <password> mongodb://NODE_1_IP:27017,NODE_2_IP:27017,NODE_3_IP:27017/DB_NAME?replicaSet=RS_ID --eval 'MONGO_QUERY'

Пример:

mongo mongodb://127.0.0.1:27017,127.0.0.2:27017,127.0.0.3:27017/test?replicaSet=rs0 --eval 'db.collection.count()'

PS: Пользователь/пароль в приведенных выше примерах были проигнорированы, но вам необходимо добавить их, если mongo необходимо пройти аутентификацию.

Другие вопросы по тегам