MongoDB 3.2使用mongoexport按日期条件导出集合报参数过多错误
报错原因
你遇到的报错是Windows系统命令行环境的引号解析规则导致的:Windows CMD默认不识别单引号作为字符串边界符,你用单引号包裹查询参数时,命令行会把查询条件里的空格作为参数分隔符,拆分出多个多余的独立参数传给mongoexport,因此触发too many positional arguments错误。去掉查询条件后没有特殊符号和空格分隔问题,所以可以正常运行。
解决方案
- 方案1:调整引号转义规则
外层用双引号包裹查询条件,内部的双引号用两个双引号转义(CMD环境),修改后的命令如下:
C:\mongodb\bin>mongoexport -d=mydb -c=mydata -q="{ time: {$gte: { ""$date"": ""2021-02-02T00:00:00.000Z"" } } }" --out=myRecords.json
如果你使用的是PowerShell环境,内部双引号用反斜杠转义即可。
- 方案2:使用查询文件(更稳妥,适合复杂查询)
将查询条件单独写入一个JSON文件,例如命名为query.json,文件内容为:
{ "time": {$gte: { "$date": "2021-02-02T00:00:00.000Z" } } }
然后调用mongoexport时指定查询文件参数即可,不需要处理引号转义:
C:\mongodb\bin>mongoexport -d=mydb -c=mydata --queryFile=query.json --out=myRecords.json
内容的提问来源于stack exchange,提问作者KCIsLearning
相关产品推荐
相关产品推荐

