使用mongoexport传递查询参数导出MongoDB数据时解析报错
Windows下mongoexport查询参数JSON解析错误的解决办法
问题根源
Windows的命令行环境(CMD/PowerShell)对引号的解析逻辑和类Unix系统完全不同,你之前的写法在类Unix环境下合规,但在Windows下会被错误解析,导致MongoDB无法识别有效的JSON查询。
分环境的正确写法
1. 命令提示符(CMD)
CMD不支持单引号作为字符串分隔符,且需要转义查询语句内部的双引号:
mongoexport -d AAA-Master -c "CMD.File" -q "{\"Deleted\":false}" --out cnt_file.json
也可以使用CMD传统的^符号转义双引号:
mongoexport -d AAA-Master -c "CMD.File" -q "{^"Deleted^":false}" --out cnt_file.json
2. PowerShell
PowerShell支持单引号包裹整个查询语句,内部双引号无需转义:
mongoexport -d AAA-Master -c 'CMD.File' -q '{"Deleted":false}' --out cnt_file.json
如果用双引号包裹,需用反引号`转义内部双引号:
mongoexport -d AAA-Master -c "CMD.File" -q "{`"Deleted`":false}" --out cnt_file.json
额外说明
- 集合名
CMD.File包含点号,必须用引号包裹,否则会被解析错误 - Windows环境下需严格对应当前使用的命令行工具选择引号规则,避免混合使用单双引号传递查询参数
内容的提问来源于stack exchange,提问作者LDonSOvrfw
相关产品推荐
相关产品推荐

