我刚搬到一台新的笔记本电脑上,我认为它有mongo 3.0.0。 在新笔记本电脑上我有mongo 3.0.4。并尝试在旧笔记本电脑上工作的脚本给我错误。这条线给了我错误。
mongoimport --host localhost \
-db roudy123_q \
-collection LebaneseAmericanUniversity\(Lebanon\).json \
--file LebaneseAmericanUniversity\(Lebanon\).json \
--jsonArray
错误验证设置:只允许一个位置参数。
我用Google搜索了错误,唯一相关的结果是mongoimport的源代码。所以我想这与新版本有关。
答案 0 :(得分:22)
只是猜测......
...但应使用--
指定各种长选项,而不是-
:
mongoimport --host localhost \
--db roudy123_q \
--collection LebaneseAmericanUniversity\(Lebanon\).json \
--file LebaneseAmericanUniversity\(Lebanon\).json \
--jsonArray
也许mongoimport
的这个特定版本对此更为谨慎,并且会将-db ... -collection ...
视为位置参数而不是关键字参数?
答案 1 :(得分:4)
答案 2 :(得分: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
答案 3 :(得分:0)
我认为在目录的文件名中给出一个空格也会导致此错误。
答案 4 :(得分: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"
其中用户是我的数据库名称,联系人是我的收藏名称
答案 5 :(得分:0)
如果您获得mongodb-error
的验证设置:仅允许使用一个位置参数。
2。在文件路径中使用/代替\。
例如:
假设您尝试将数据从本地计算机导入到集合中的服务器(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>