【问题标题】:What does "too many positional options" mean when doing a mongoexport?执行 mongoexport 时“位置选项太多”是什么意思?
【发布时间】:2022-04-21 18:23:07
【问题描述】:

mongoexport -h db.mysite.com -u myUser -p myPass -c myCollection

但我得到的回应是:

ERROR: too many positional options

那是怎么回事?

【问题讨论】:

  • <http://db.mysite.com> 在里面做什么?
  • 我有同样的问题> mongoexport --host Remote --port 27017 --collection Event --db mana --fields userName --query {"_class" : "blaablaEvent","re​​wardStatus" : "新"} --out out.csv
  • 一般来说是解析错误(一些额外的空间或类似的东西),一旦尝试再次“输入”命令而不是从某个地方复制它。
  • 这背后的原因可能是导出为 CSV 格式。尝试以 json 格式导出。

标签: mongodb


【解决方案1】:

我遇到了同样的问题。在我的例子中,我使用 mongoexport--query 选项,它需要一个 JSON 文档,例如:

mongoexport ... --query {field: 'value'} ...

我需要用引号将文档括起来:

mongoexport ... --query "{field: 'value'}" ...

【讨论】:

  • 某些操作系统的工作方式略有不同。上述解决方案在 Windows 上对我有用,但对于同事 (Mac),他必须将单引号 (') 放在外面,将双引号 (") 放在里面。Win: mongoexport ... --query "{ field: 'value'}" ... Mac: mongoexport ... --query '{field: "value"}' ...
  • 在 linux 中使用子进程找不到正确的匹配,如果我复制粘贴它可以工作的命令,它就不起作用!
【解决方案2】:

我遇到了同样的问题。在某处发现了一个小组帖子,上面说要删除“-p”和密码之间的空格,这对我有用。

您的示例命令应该是:

mongoexport -h db.mysite.com -u myUser -pmyPass -c myCollection

【讨论】:

  • 另外,使用 -f 选项注意空格。您的字段不应在逗号之间留出空格
  • 超级怪。 macOS 与 Ubuntu 上相同版本的 mongodump (2.6.11),macOS 版本使用空格,Ubuntu 版本没有。
【解决方案3】:

我在导入 csv 文件时遇到了同样的错误。 但它只是,您为该 csv 文件导入传递的字段列表可能有空格。 只需清除字段列表中的空格即可。

是解析错误。

【讨论】:

  • 是的,就是这样....将导出发布到 sublime 中,清理干净,它对我有用。谢谢 -
【解决方案4】:

mongodump 也有同样的问题。经过一番搜索,我发现使用--out参数指定输出目录可以解决这个问题。使用 out 参数的语法是

mongoexport --collection collection --out collection.json

此外,如果您的 Mongodb 实例没有运行,那么您可以使用 --dbpath 指定实例文件的确切路径。

来源:http://docs.mongodb.org/manual/core/import-export/

【讨论】:

    【解决方案5】:

    我在使用 mongoexport 实用程序时遇到了同样的问题(使用 2.0.2)。我的解决方法是使用完整的参数名称(即不是 -d,而是使用 --db)。

    【讨论】:

      【解决方案6】:

      有时编辑器会搞砸(例如evernote)。我通过在终端中重新输入命令解决了这个问题。

      【讨论】:

      • Evernote 将“--query”更改为“--query”,这对我来说很糟糕
      【解决方案7】:

      我也陷入了同样的境地,找到了原因。

      1. 通过添加参数--type csv 确保以 CSV 格式导出
      2. 确保字段名称中没有空格, 示例:--fields _id, desc 是错误的,但 --fields id,desc,price 是好的

      【讨论】:

        【解决方案8】:

        如果您首先放置 -c 选项,这也有效。对我来说,这个命令确实有效:

        mongoexport -c collection -h ds111111.mlab.com:11111 -u user -p pass -d mydb
        

        您也可以离开通行证,服务器会要求您输入通行证。这仅在服务器支持 SASL 身份验证时才有效(例如,mlab 不支持)。

        【讨论】:

          【解决方案9】:

          对于(错误:参数过多)

          不要在字段之间使用空格

          尝试:

          mongoexport --host localhost --db local --collection epfo_input --type=csv --out epfo_input.csv --fields cin,name,search_string,EstablishmentID,EstablishmentName,Address,officeName
          

          不要尝试:

          mongoexport --host localhost --db local --collection epfo_input --type=csv --out epfo_input.csv --fields cin,name,search_string,Establishment ID,Establishment Name,Address,office Name
          

          【讨论】:

            【解决方案10】:

            有类似的问题

            $too many positional arguments
            $try 'mongorestore --help' for more information
            

            对我来说,简单的解决方法是将路径位置用引号括起来 " "

            这失败了:

            mongorestore -h MY.mlab.com:MYPORT -d MYDBNAME -u ADMIN -p PASSWORD C:\Here\There\And\Back\Again
            

            成功了:

            mongorestore -h MY.mlab.com:MYPORT -d MYDBNAME -u ADMIN -p PASSWORD "C:\Here\There\And\Back\Again"
            

            【讨论】:

              【解决方案11】:

              我在启动 mongod 时遇到了同样的问题。我使用了以下命令:

              ./mongod --port 27001 --replSet abc -- dbpath /Users/seanfoley/Downloads/mongodb-osx-x86_64-3.4.3/bin/1 --logpath /Users/seanfoley/Downloads/mongodb-osx -x86_64-3.4.3/log.1 --logappend --oplogSize 5 --smallfiles --fork

              出现如下错误信息:

              解析命令行时出错:在命令行上指定了太多位置选项

              解决此问题的方法是删除“--”和“dbpath”之间的单个空格

              【讨论】:

                【解决方案12】:

                我在使用“mongod --dbpath”命令时遇到了同样的问题。我正在做的看起来有点像这样:

                mongod --dbpath c:/Users/HP/Desktop/Mongo_Data

                命令语法应该在哪里:

                mongod --dbpath=c:/Users/HP/Desktop/Mongo_Data
                

                这对我有用。除此之外可以记下使用mongod --help命令的命令功能和语法。

                【讨论】:

                  【解决方案13】:

                  就我而言,我必须将端口与服务器连接分开编写。这对我有用:

                  mongoexport --host=HOST --port=PORT --db=DB --collection=COLLECTION --out=OUTPUT.json -u 用户 -p PASS

                  【讨论】:

                    【解决方案14】:

                    在您拥有 mongod.exe 的同一文件夹中创建一个 json 文件。

                    例如:coll.json

                    并在此文件夹中打开命令提示符。

                    在 CMD 中键入以下内容。

                    mongoexport --db 数据库名 --collection 集合名 --out coll.json

                    你会看到一个进度条,导出所有数据非常酷。

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2011-04-13
                      • 1970-01-01
                      • 1970-01-01
                      • 2012-08-30
                      相关资源
                      最近更新 更多