#mongodb #eval #mongo-shell
Вопрос:
Возникли проблемы с запросом mongosh
попытался запросить монго rs следующим образом:
mongosh mongodb://xx.yy.zz.kk:27010,xx.yy.zz.ll:27010,kk.yy.zz.ff:27010/somedb --username someuser --password somepassword --authenticationDatabase admin --eval 'db.getCollection("somecollection").findOne();'
он возвращает результат, но никогда не возвращает мне мое приглашение (оболочка bash).
обновление: попытка выполнить тот же запрос с другого хоста в другой подсети возвращает результат и возвращается в оболочку. так что, возможно, это не связано с монгошем.
Комментарии:
1. Вы пробовали то же самое с классической
mongo
оболочкой? На мой взгляд, новоеmongosh
еще не совсем пригодно для использования.2. да, я вижу, что на самом деле его там нет. Я не устанавливал mongo, так как не хочу, чтобы весь набор серверов баз данных находился в поле, с которого я запрашиваю удаленный сервер. Мне просто нужен «cli» для запроса mongo , кроме того, устаревшая оболочка mongo устарела
3. Результат должен быть напечатан на вашей консоли, вы получаете ожидаемый результат при запуске оболочки
findOne
from?4. да. но, как я вижу, та же команда работает с другой машины из другой подсети, так что это может быть что-то связанное с selinux или сокетами. Честно говоря, я не знаю.
5. Запуск непосредственно из оболочки (без —eval), он должен возвращать ошибку.
Ответ №1:
Когда вы используете --eval
, то команда выполняется, а затем оболочка завершается. Если вы хотите сохранить оболочку открытой, используйте опцию --shell
Комментарии:
1. На самом деле мне просто нужен результат. и моя (bash) подсказка оболочки. Мне не нужна раковина монго.