【问题标题】:Can't access collection from the shell - SyntaxError: missing ; before statement (shell):1无法从 shell 访问集合 - SyntaxError: missing ;声明前(shell):1
【发布时间】:2011-08-18 17:51:17
【问题描述】:

我编写了一个脚本,使用 mongoimport 将 csv 文件加载到 mongodb。当我为两个类似的 csv 文件(相同类型)运行此文件时,两者都可以正常上传,但是我只能从 mongodb shell 访问其中一个。这是一个 mongodb shell 会话的记录:

> show collections
3mLgQAYJCq6_20110802
eTByWMY7zO6_20110802NonUniCode
system.indexes
> db.3mLgQAYJCq6_20110802
Thu Aug 18 18:44:49 SyntaxError: missing ; before statement (shell):1
> db.eTByWMY7zO6_20110802NonUniCode
vh.eTByWMY7zO6_20110802NonUniCode

但是,我可以从 python 脚本和使用 mongoexport 访问这两个集合。我怀疑 3mLgQAYJCq6_20110802 文件有问题,但我不知道从哪里开始查找。有什么想法吗?

【问题讨论】:

    标签: mongodb


    【解决方案1】:

    当我的收藏名称包含特殊字符时,这对我有用:

    db["3mLgQAYJCq6_20110802"].findOne();
    

    【讨论】:

    • findOne() 为我返回 null,但其他方法效果很好。 find()、drop()、remove() 等。线索是 db["3mLgQAYJCq6_20110802"]
    • +1 这对我有用。我的收藏名称中有下划线和连字符。
    【解决方案2】:

    集合名称应以字母或下划线开头。您可以从以下链接获取有关 mongodb 中集合命名约定的信息- http://www.mongodb.org/display/DOCS/Collections

    【讨论】:

      【解决方案3】:

      可爱的收藏名称...可能是因为它以3开头。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-26
        • 1970-01-01
        • 2013-06-11
        • 2017-10-16
        相关资源
        最近更新 更多