Не может сделать базовый скрипт монго с аутентификацией
У меня есть действительно сложная проблема, которую, я думаю, я могу решить, написав скрипт оболочки mongo, но мне даже не удается установить простое соединение. У меня есть локальная база данных Монго, которая требует имя пользователя / пароль, к которому я обычно обращаюсь следующим образом:
mongo admin -u <username> -p
в этот момент я ввожу пароль и ура! у меня есть снаряд но это не сработает для моей проблемы. В качестве теста я создал файл с именем 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
Почему я не получаю результатов?
1 ответ
Я наконец сделал эту работу. Вот как я это сделал:
Сначала я создал файл 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) если вы добавляете новую базу данных, и вы используете mongo с аутентификацией, вам нужно либо сначала войти в базу данных аутентификации, а затем переключиться на нужную базу данных (как показывает мой пример), либо вам нужно добавить пользователя / пароль к желаемая база данных (как я, вероятно, следовало бы сделать в первую очередь)
2) Когда вы запускаете файл javascript через mongo, не ожидайте использовать те же функции "javascript", к которым вы привыкли. Я только что усвоил жесткий урок, что не все JavaScript одинаковы. например, вы не можете использовать Console.log() в файле javascript, который запускается через mongo, потому что console.log на самом деле не является основным javascript, а скорее является функцией, специфичной для реализаций браузера и узла.