13

我刚搬到一台新的笔记本电脑,我相信它有 mongo 3.0.0。在新笔记本电脑上,我有 mongo 3.0.4。并尝试在旧笔记本电脑上运行的脚本给了我错误。这条线给了我错误。

mongoimport --host localhost \
            -db roudy123_q \
            -collection LebaneseAmericanUniversity\(Lebanon\).json \
            --file LebaneseAmericanUniversity\(Lebanon\).json \
            --jsonArray

验证设置时出错:只允许一个位置参数。

我用谷歌搜索了错误,唯一相关的结果是 mongoimport 的源代码。所以我想这与新版本有关。

4

6 回答 6

28

只是一个疯狂的猜测......

...但应使用指定的各种长选项--,而不是-

mongoimport --host localhost \
            --db roudy123_q \
            --collection LebaneseAmericanUniversity\(Lebanon\).json \
            --file LebaneseAmericanUniversity\(Lebanon\).json \
            --jsonArray

也许这个特定的版本mongoimport对此更加谨慎,并且会被-db ... -collection ...视为位置参数而不是关键字参数?

于 2015-06-20T13:21:25.867 回答
6

如果在文件路径中给出的空格没有“\”,也会发生此错误。例如:这行不通: 错误

但这会起作用:

工作正常

于 2016-04-23T16:44:33.963 回答
1

如果您正在mongodb-error验证设置:只允许一个位置参数。

  1. 只需将 --file 路径放在“”中即可。

2.在 --file 路径中使用 / 而不是 \。

  1. 另外,将 --host 放在“”中。

例如:
假设您尝试将数据从本地机器导入集合中的服务器(MongoDB Atlas 或您的 MongoDB 服务器或本地),然后按照以下步骤操作:

mongoimport --host "cluster0-shard-00-01-ceax1.mongodb.net:27017" --db <dbname> --type json --file "C:/Users/ranjeet/Downloads/MongoDb project/ranjeet.json" --authenticationDatabase admin --ssl --username <Username> --password <Password> --collection <CollectionName>
于 2020-07-16T13:50:45.903 回答
0

上述答案都没有解决我的问题,但它们确实帮助我弄清楚我做错了什么。(我正在使用 Windows)

1)使用 -d 而不是 --d (简写只需要一个 - 而不是两个 --)

2)使用“”作为绝对文件路径。

3)在文件路径位置将\更改为/。

例如,我在 Windows 中的文件位置是: C:\kp github\other projects\projectXyz\myFile.csv

所以对我来说,有效的命令是:

mongoimport -d users -c contacts --type=csv --headerline --file="C:/kp github/other projects/projectXyz/myFile.csv"或者

mongoimport -d users -c contacts --type csv --headerline --file "C:/kp github/other projects/projectXyz/myFile.csv"

其中 users 是我的数据库名称,contacts 是我的集合名称

于 2020-05-29T17:25:58.853 回答
0

如果您在使用 --fields 插入字段时遇到此错误,可能的原因可能是您使用空格来执行此操作。

-f 和 --fields 都应该在这些情况下使用 Mongo 版本 3.0.6

mongoimport --db logs --collection action_logs --type tsv -f updated_at ,transaction_time ,origin  --file parsed.tsv
mongoimport --db logs --collection action_logs --type tsv -f updated_at,transaction_time,origin  --file parsed.tsv
于 2015-11-26T11:58:48.613 回答
0

我认为在目录的文件名中添加空格也会导致此错误。

于 2016-03-15T23:01:06.923 回答