2014-10-15 1 views
5

У меня очень сложная проблема, которую, я думаю, я могу решить, написав скрипт оболочки mongo, но я даже не могу сделать простое соединение. У меня есть локальная база данных Монго, который требует имя пользователя/пароль, который я обычно доступа, как это:не может сделать основной скрипт оболочки mongo с аутентификацией

mongo admin -u <username> -p 

в какой момент я ввожу пароль и Hooray! У меня есть оболочка. но это не сработает для моей проблемы. В качестве теста я создал файл с именем test.js и все, что в нем заключается в следующем:

var conn = new Mongo() 

db = conn.getDB("test"); 
db.cust.find(); 

Я затем запустить сценарий из командной строки следующим образом:

mongo test.js 

в какой момент Я получаю это:

MongoDB shell version: 2.4.10 
connecting to: test 

Почему я не получаю результатов?

ответ

7

Я, наконец, сделал эту работу. Это, как я в конечном итоге делает это:

Сначала я сделал файл с именем test.js со следующими в нем:

db = connect("localhost:27017/admin"); 

db.auth('username','password'); 

db = db.getSiblingDB('test'); 

var cursor = db.cust.find(); 

while (cursor.hasNext()) { 
    printjson(cursor.next()); 
} 

Затем я запустил эту команду из командной строки:

mongo test.js 

Я также хочу указать несколько вещей, которые я узнал, пытаясь сделать это с любым другим разработчиком, у которого возникли проблемы.

1) если вы добавляете новую базу данных, и вы используете монго с аутентификацией, вам необходимо сначала войти в базу данных аутентификации, а затем переключиться на нужную базу данных (как показывает мой пример) или вам нужно добавить пользователя/password в нужную базу данных (как я, вероятно, должен был сделать в первую очередь)

2) При запуске javascript-файла через mongo не ожидайте использовать те же функции «javascript», к которым вы привыкли. Я просто усвоил урок, что не все javascript одинаковы. например, вы не можете использовать Console.log() в файле javascript, который запускается через mongo, потому что console.log на самом деле не является основным javascript, а скорее функцией, специфичной для реализации браузера и узла.