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

mongodb-error validating settings: only one positional argument is allowed

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

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

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

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

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

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

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

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

如果您在使用 --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

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

如果文件路径中的空格没有“\”,也会发生此错误。 前任: 这不会工作:

但这行得通:

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

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

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 是我的集合名称

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

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

2.use / 而不是 --file 路径中的 \。

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

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

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>