mongodump 使用 --query 参数给出 "positional arguments not allowed" 错误
mongodump using --query argument gives "positional arguments not allowed" error
我正在使用 mongodb 2.6 并尝试使用查询选项创建转储 "positional arguments not allowed"。
我正在尝试获取参数时间戳在指定范围内且 ID 为任何指定格式的所有产品。
mongodump --host 10.xx.xxx.xx:xxxx --db test --collection products --username abc --password uvw --query '{"parameterList":{$elemMatch:{ "paramName":"TimeStamp","paramValue":{$gte:"20160620000000",$lt:"20160724000000"}}},"parameterList.paramValue": {$in:[/SPC126/,/CSC234/]}}' --authenticationDatabase test --out "c:\New folder\dump"
文档结构
{
"_id": ObjectId("590074c362f41f15144996fa"),
"product": "device1",
"parameterList":[{"paramName":"TimeStamp",
"paramValue":"20160731000700"},
{"paramName":"Id",
"paramValue": "SPC126332"}]
}
与 UNIX bash
不同,Windows cmd.exe
不将单引号识别为分隔符。
运行 您在 cmd.exe
中的示例命令给出了错误:
Error parsing command line: too many positional options
尝试更改引号,将单引号替换为双引号,反之亦然。例如,使用您发布的示例命令:
mongodump --host 10.xx.xxx.xx:xxxx --db test --collection products --username abc --password uvw --query "{'parameterList':{$elemMatch:{ 'paramName':'TimeStamp','paramValue':{$gte:'20160620000000',$lt:'20160724000000'}}},'parameterList.paramValue': {$in:[/SPC126/,/CSC234/]}}" --authenticationDatabase test --out "c:\New folder\dump"
请注意上面示例中的 --query "..."
而不是 --query '...'
。
应该能够成功完成转储。
我正在使用 mongodb 2.6 并尝试使用查询选项创建转储 "positional arguments not allowed"。
我正在尝试获取参数时间戳在指定范围内且 ID 为任何指定格式的所有产品。
mongodump --host 10.xx.xxx.xx:xxxx --db test --collection products --username abc --password uvw --query '{"parameterList":{$elemMatch:{ "paramName":"TimeStamp","paramValue":{$gte:"20160620000000",$lt:"20160724000000"}}},"parameterList.paramValue": {$in:[/SPC126/,/CSC234/]}}' --authenticationDatabase test --out "c:\New folder\dump"
文档结构
{
"_id": ObjectId("590074c362f41f15144996fa"),
"product": "device1",
"parameterList":[{"paramName":"TimeStamp",
"paramValue":"20160731000700"},
{"paramName":"Id",
"paramValue": "SPC126332"}]
}
与 UNIX bash
不同,Windows cmd.exe
不将单引号识别为分隔符。
运行 您在 cmd.exe
中的示例命令给出了错误:
Error parsing command line: too many positional options
尝试更改引号,将单引号替换为双引号,反之亦然。例如,使用您发布的示例命令:
mongodump --host 10.xx.xxx.xx:xxxx --db test --collection products --username abc --password uvw --query "{'parameterList':{$elemMatch:{ 'paramName':'TimeStamp','paramValue':{$gte:'20160620000000',$lt:'20160724000000'}}},'parameterList.paramValue': {$in:[/SPC126/,/CSC234/]}}" --authenticationDatabase test --out "c:\New folder\dump"
请注意上面示例中的 --query "..."
而不是 --query '...'
。
应该能够成功完成转储。