Запуск скрипта с запросами mongodb из оболочки mongodb - PullRequest
1 голос
/ 05 января 2012

У меня есть пара идентификаторов в моем документе базы данных mongodb. Мне нужно создать индексы для этих идентификаторов через скрипт, чтобы мне не приходилось снова и снова запускать команду sureIndex.

db.getCollection("elements").ensureIndex({customerId:1});
db.getCollection("elements").ensureIndex({userId:1});
........

Я просто запускаю сценарий (который содержит все эти команды), и я должен сделать. Есть идеи, как запустить скрипт из оболочки mongodb? И каким должно быть расширение скрипта?

Джухи.

Ответы [ 3 ]

12 голосов
/ 05 января 2012

Вы можете поместить свои команды в файл javascript (с расширением .js) и использовать консольную утилиту mongo для его запуска.Например:

mongo --host my_host --port my_port my_db create_indexes.js

Где файл create_indexes.js будет содержать ваши команды:

db.getCollection("elements").ensureIndex({customerId:1});
db.getCollection("elements").ensureIndex({userId:1});
....
8 голосов
/ 05 января 2012

Вы также можете запустить скрипт из оболочки mongodb. Мне нравится добавлять вещи в функцию, чтобы было удобно их вызывать. Создайте сценарий так:

var ensureIndexes = function() {
    db.getCollection("elements").ensureIndex({customerId:1});
    db.getCollection("elements").ensureIndex({userId:1}); ........
}

Сохраните вышеупомянутое в файле с именем sureIndexes.js, затем из оболочки mongo введите:

load('ensureIndexes.js')

Теперь вы сможете ввести ensureIndexes() для вызова этой функции. У меня есть много скриптов, содержащих такие служебные функции.

4 голосов
/ 08 ноября 2012

Если вы используете любой Unix, например, ОС, это может помочь.

Я выполнил перенаправление с использованием оболочки Unix.

Итак, из командной строки UNIX вы набираете:

mongo < your_script.js

Внутри your_script.js вы можете указать свои команды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...