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
验证设置:只允许一个位置参数。
- 只需将--文件路径放在“”中即可。
2.use / 而不是 --file 路径中的 \。
- 此外,将 --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>
我刚换了一台新笔记本电脑,我相信它有 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
验证设置:只允许一个位置参数。
- 只需将--文件路径放在“”中即可。
2.use / 而不是 --file 路径中的 \。
- 此外,将 --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>