【问题标题】:MongoEngine: database names cannot contain the character '.'MongoEngine:数据库名称不能包含字符 '.'
【发布时间】:2022-04-05 16:19:07
【问题描述】:

我正在尝试在我的 python 脚本中使用 mongoengine 插入文档,但它引发了这个异常

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

连接字符串是 mongodb://user:pass@ds042487-a0.mlab.com:42487/db-name

关于如何解决此问题的任何建议??

谢谢

【问题讨论】:

  • 你能添加你用来连接问题的代码吗?
  • 你的数据库名称中有.吗?
  • from mongoengine import * try: connect(mongodb://user:pass@ds042487-a0.mlab.com:42487/db-name) 例外为 e: print e

标签: python mongodb pymongo mlab


【解决方案1】:

而不是使用

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')

它对我有用。 :)

【讨论】:

    【解决方案2】:

    您的数据库名称不应contain any of these characters: ' ', '.', '$', '/', '\\', '\x00', '"'

    检查您的数据库名称。 Mongo 驱动程序也强制执行此规则,因此您拥有一个名称中带有点的数据库的可能性很小。

    【讨论】:

    • 我想补充一点,我发现这也适用于 collection 名称
    【解决方案3】:

    我使用python driver 3.4v,这是共享集群格式的连接字符串,我尝试了不同的连接字符串,但它对我不起作用,这是 mongoengine 的Connection Strings URI Format

    【讨论】:

      猜你喜欢
      • 2013-08-31
      • 1970-01-01
      • 2019-09-17
      • 2019-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-27
      • 2011-09-30
      相关资源
      最近更新 更多