Mongoexport错误解析查询

jos*_*hlk 5 mongodb mongoexport

我试图做一个mongoexport到CSV但只选择带有查询的某些记录.这是我的命令(windows 7 cmd):

mongoexport --host foo.com --port 27017 --username bar -p --db foo --csv --fields col1,col2,col3 --collection bar --out dump_q.csv --query '{"recent":"yes"}'
Run Code Online (Sandbox Code Playgroud)

但是输入密码后,我收到一个错误:

assertion: 16619 code FailedToParse: FailedToParse: Expecting '{': offset:0
Run Code Online (Sandbox Code Playgroud)

该命令在没有查询参数的情况下工作正常,但我无法弄清楚查询有什么问题:

--query '{"recent":"yes"}'
Run Code Online (Sandbox Code Playgroud)

任何帮助非常感谢


答案摘要:

  1. 确保使用双引号括起查询和单引号以包含字符串,例如

    --query"{'recent':'yes'}"

  2. 还要确保查询中没有空格,否则命令提示符会将其解析为另一个参数.所以没有:

    --query"{'recent':'yes'}"(注意中间的空格)

  3. 包含嵌套字段的查询不起作用,例如:

    --query"{'folder.recent':'yes'}"

Wir*_*rie 5

您将需要使用双引号来包含查询字符串(以及单引号或两个引号可以转义到字符串内部)

--query "{'recent':'yes'}"
Run Code Online (Sandbox Code Playgroud)

完成:

mongoexport --host foo.com --port 27017 --username bar -p
        --db foo --csv --fields col1,col2,col3 
        --collection bar --out dump_q.csv --query "{'recent':'yes'}"
Run Code Online (Sandbox Code Playgroud)