Когда я перехожу в оболочку mongo в своем терминале, он всегда начинается с теста базы данных, который является неправильной базой данных. Можете ли вы установить mongo для запуска в конкретной базе данных?
Настройка базы данных по умолчанию для оболочки MongoDB
Ответ 1
Командная строка
Вы можете выбрать базу данных для использования в командной строке mongo, например, для 'mydb':
mongo mydb
Если имя базы данных не указано, будет использоваться "test".
В .mongorc.js
Если вы хотите установить базу данных по умолчанию без указания в командной строке каждый раз, вы можете добавить строку в файл .mongorc.js
в вашем домашнем каталоге:
db = db.getSiblingDB("mydb")
Файл .mongorc.js
запускается после запуска оболочки mongo
, поэтому, если вы установите здесь значение по умолчанию, оно переопределит базу данных, указанную в командной строке.
Ответ 2
Вполне возможно установить по умолчанию, albiet немного странным образом. Вот что я делаю для автоматической авторизации для администратора в .mongorc.js:
//Persist the database selected
var selectedDB = db
//Authenticate
db = db.getSiblingDB("admin")
db.auth('admin','adminpass')
//Switch back to selected DB
db = selectedDB
//Universally allow read queries on secondaries from shell.
rs.slaveOk()
Чтобы ответить на вопрос, я думаю, что способ выполнить это - просто выполнить проверку, чтобы проверить, загружена ли текущая база данных "test", и измените ее, только если это так.
if(db.name == 'test')
db.getSiblingDB('yourdefaultdb')
Это позволяет выбрать базу данных в командной строке и установить значение по умолчанию. Естественно, это помешает вам переопределить и использовать "тест" db из командной строки, но я думаю, что немного странного случая использования задал вопрос. Приветствия.
Ответ 3
В настоящий момент (смотря 2.6.4) нет возможности универсально установить БД по умолчанию для клиента. Кажется, он жестко привязан к test
. В моем гневе я отказался от ответа Стенни [1], потому что он не работает, если у вашего пользователя нет разрешений на доступ к тестовой базе данных. Но если ваш случай не такой, то он может работать достаточно хорошо.
[1], и я не могу отменить свой голос сейчас, если не отредактирован ответ