Вопрос:

MongoEngine: имена баз данных не могут содержать символ '.'

python mongodb pymongo mlab

1298 просмотра

2 ответа

31 Репутация автора

Я пытаюсь вставить документ, используя mongoengine в моем скрипте Python, но это вызывает это исключение

(<class 'pymongo.errors.InvalidName'>, InvalidName("database names cannot contain the character '.'",), <traceback object at 0x000000000844F708>)

Строка подключения: mongodb: // пользователь: pass@ds042487-a0.mlab.com: 42487 / db-name

Любые предложения о том, как это исправить ??

Спасибо

Автор: Mustafa Khalid Источник Размещён: 02.01.2018 10:54

Ответы (2)


2 плюса

14309 Репутация автора

Имя вашей базы данных не должно содержать ни одного из этих символов: ' ', '.', '$', '/', '\\', '\x00', '"'

Проверьте имя вашей базы данных. Драйвер Mongo также применяет это правило, поэтому вероятность того, что у вас есть база данных с точкой в ​​ее имени, невелика.

Автор: Oluwafemi Sule Размещён: 03.01.2018 07:10

2 плюса

31 Репутация автора

Решение

Вместо того, чтобы использовать

connect("mongodb://user:pass@ds042461-a0.mlab.com:42461/db-name")

использовать этот

connect( db='db-name', username='user', password='pass', host='mongodb://user:pass@ds042461-a0.mlab.com:42461/db-name')

Это сработало для меня. :)

Автор: Mustafa Khalid Размещён: 03.01.2018 09:29
Вопросы из категории :
32x32