You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中使用mongodump --query选项报错:JSON解析及命令行错误

解决mongodump查询参数解析错误问题

命令行环境下的引号、特殊字符解析规则,和MongoDB扩展JSON的格式要求容易冲突,导致你遇到的「解析查询为扩展JSON错误」或「命令行解析错误」,针对不同操作系统环境,给出以下可行方案:

1. Linux/macOS(Bash)环境

方案A:使用ANSI-C引用

利用Bash的$'...'语法包裹查询内容,内部直接使用标准JSON格式即可:

mongodump --uri "mongodb+srv://l:p@host/db" -o folder --collection collection --query $'{ "meta.field": {"$gte": {"$date": "2023-01-01T00:00:00Z" }}}'

方案B:转义双引号

用双引号包裹整个查询,内部双引号用反斜杠转义:

mongodump --uri "mongodb+srv://l:p@host/db" -o folder --collection collection --query "{ \"meta.field\": {\"$gte\": {\"$date\": \"2023-01-01T00:00:00Z\" }}}"

2. Windows CMD环境

CMD中需要将内部双引号替换为两个双引号进行转义:

mongodump --uri "mongodb+srv://l:p@host/db" -o folder --collection collection --query "{ ""meta.field"" : {""$gte"" : {""$date"" : ""2023-01-01T00:00:00Z"" }}}"

3. Windows PowerShell环境

方案A:单引号包裹查询

PowerShell中单引号内部的内容不会被解析,直接用单引号包裹标准JSON:

mongodump --uri "mongodb+srv://l:p@host/db" -o folder --collection collection --query '{ "meta.field": {"$gte": {"$date": "2023-01-01T00:00:00Z" }}}'

方案B:转义特殊字符

若使用双引号包裹,需用反引号()转义内部的$`符号和双引号:

mongodump --uri "mongodb+srv://l:p@host/db" -o folder --collection collection --query "{ `"meta.field`": {`"$gte`": {`"$date`": `"2023-01-01T00:00:00Z`" }}}"

4. 最稳妥方案:使用查询文件

完全避开命令行解析问题,将查询内容保存为JSON文件(比如query.json):

{ "meta.field": {"$gte": {"$date": "2023-01-01T00:00:00Z" }}}

执行mongodump时指定该文件:

mongodump --uri "mongodb+srv://l:p@host/db" -o folder --collection collection --queryFile query.json

内容的提问来源于stack exchange,提问作者MrVoodoo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 01:19:54