Не может сделать базовый скрипт монго с аутентификацией

У меня есть действительно сложная проблема, которую, я думаю, я могу решить, написав скрипт оболочки 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, а скорее является функцией, специфичной для реализаций браузера и узла.

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